Når en side ser ødelagt ut, er det lett å lete i CSS først. Men mange visuelle feil starter i databasen: en for lang tittel, en tom ingress, en dublettslug eller tekst som er lagret med feil tegnsett.

Kontrollpunkter mellom database og frontendvisning
Små datakontroller kan hindre at feil innhold blir frontend-støy.

Et innholdssystem er avhengig av at dataene har en viss kvalitet. Frontend kan bygges robust, men den skal ikke måtte gjette seg rundt alle mulige feil. Derfor bør databasen og importprosessene ha enkle kontroller som fanger problemer tidlig.

Tomme felt er ikke alltid uskyldige

Noen felt kan være tomme. Andre bør ikke være det. En artikkel uten tittel, slug eller body er sjelden publiserbar. En kategori uten navn gir dårlig navigasjon. En tagg uten slug kan gi svake koblinger. Slike regler bør være tydelige i både kontrollpanel og databasearbeid.

Lengdekontroll hindrer designbrudd

Lange titler er ikke feil i seg selv, men ekstremt lange sammenhengende strenger kan ødelegge kort, lister og hero-felt. CSS bør kunne bryte tekst, men databasen kan også hjelpe med rapporter som finner uvanlige lengder:

SELECT article_id, title, CHAR_LENGTH(title) AS title_length
FROM articles
WHERE CHAR_LENGTH(title) > 120;

Slike spørringer er ikke sensur. De er kvalitetssjekk.

Dubletter skaper uklare URL-er

Hvis to artikler har samme slug, kan systemet hente feil rad eller ikke vite hvilken som skal vises. Derfor bør slugs kontrolleres for dubletter. Der sluger er publiserte URL-nøkler, bør de også beskyttes med unike regler eller tydelige rutiner.

Tegnsett må kontrolleres

Feil tegnsett gir symptomer som rare symboler, ødelagte norske tegn eller feil i kodeeksempler. For WEBoracle, som har både norsk tekst og tekniske eksempler, er utf8mb4 et naturlig valg. Importer og patcher bør bruke samme tegnsett som databasen forventer.

Relasjoner må peke på noe som finnes

En artikkel med category_id som ikke finnes, kan gi tom kategori i visningen. Et taggforhold som peker på feil rad, kan gi manglende filtrering. Slike feil kan oppdages med venstrejoin-kontroller som finner rader uten match.

Frontend skal være robust, men ikke alene

Frontend bør tåle lange ord, manglende bilde og tomme valgfrie felt. Men robust frontend er ikke en erstatning for datakvalitet. Den beste løsningen er samarbeid: databasen holder dataene ryddige, og frontend viser dem fleksibelt.

Konklusjon

Små datakvalitetskontroller sparer tid. De reduserer feil som ellers ser ut som CSS-problemer, template-feil eller mystiske nettleserforskjeller. For et CMS er dette lavkostnadsarbeid med høy verdi.

Kilder og videre lesning

  1. MySQL 8.4 Reference Manual: String Functions and Operators
  2. MySQL 8.4 Reference Manual: Character Sets, Collations, Unicode
  3. W3C/WAI: Understanding Reflow