Vastus (12.10.2023 11:28): Valed valikud võivad põhjustada kannatusi, segadust, lisatööd ja mainekadu (süsteemi omanikule):
https://reisile.postimees.ee/4484884/reisija-pidi-lisatasu-maksma-sest-tema-nimi-ei-mahtunud-lennupiletile. Antud näite korral oli isikunimede registreerimiseks mõeldud tekstiväljades lubatud maksimaalne märkide arv liiga väike.
Andmebaasis võiks veergude
eesnimi ja
perenimi maksimaalne väljapikkus olla 50 märki. See võimaldaks registreerida ka pikemaid nimesid. Teatavasti on
mõned isikunimed väga pikad. Kui arvestada väljapikkuste määramisel selliste nimedega, siis peaks nende veergude väljapikkus MS Accessi andmebaasis olema 255 märki (maksimaalne lubatud väljapikkus VARCHAR tüüpi veergude korral) ning andmebaasisüsteemides PostgreSQL ja Oracle võibolla isegi 1000 märki (sest seal pole 255 märgi piirangut nagu MS Accessis). Leian, et sellised väga suured väljapikkused pole siiski mõistlikud, sest:
- ülipikkade nimedega inimesi on väga vähe,
- neil on oma nimest ka lühivorm,
- liiga suur väljapikkus annaks kliendiks registreerijale võimaluse registreerida kahjulikku sisu nagu ründeskripti,
- kasutajaliideses tuleb sisestusvälja näidata suuremana kui valdava enamiku nimede puhul on vajalik.
Leian, et oleks vale kasutada kõikide tekstitüüpi veergude puhul järjekindlalt maksimaalset võimalikkus väljapikkust või suurimat väärtust võimaldavat andmetüüpi ilma täiendavate kitsendusteta. Kui näiteks veerg
perenimi on PostgreSQLis tüüpi
Text ilma kitsenduseta, et maksimaalne väärtus selles veerus võib olla näiteks kuni 50 märki, siis see jätab skeemi lugejale (programmid, inimesed) vale mulje sellesse veergu oodatavatest andmetest.
Rusikareegel: valige iga veeru jaoks selline andmetüüp + täiendavate kitsenduste komplekt, et kõik vajalikud väärtused saaksid sellesse veergu salvestatud, kuid suurim võimalik väärtus oleks võimalikult väike.