Niet een hele spannende vraag, maar vooral uit nieuwsgierigheid.
Ik ben benieuwd hoeveel tel.nrs en e-mailadressen een user kan invoeren op jouw website. Vaak zie je bij het inschrijven 2 velden voor een tel.nr. (een vast en een mobiel nummer). Is dat nog nodig, of is 1 tel.nr. tegenwoordig gebruikelijker? En dezelfde vraag voor een e-mailadres. Bied je de gebruiker de mogelijkheid om 1 e-mailadres in te voeren, of geef je hem de mogelijkheid om nog een extra e-mailadres in te voeren zodat de mail altijd naar 2 adressen wordt verstuurd?
>> Ik zou alleen 2 email's gebruiken als je daar van plan bent gebruik van te maken
Ik kan me voorstellen dat er mensen zijn die graag hun mail op 2 e-mailadressen willen ontvangen. Bijv. een privé-adres en een zakelijk adres. Vandaar zou het misschien handig kunnen zijn.
@Ger
>> of je kan met een default value afdwingen dat het niets altijd hetzelfde is.
Ik begrijp niet wat je hiermee bedoelt. Kun je dat uitleggen?
Ah oké, duidelijk. Lijkt me wel enigszins lastig om dan een goede value te bedenken voor een leeg veld.
Je kunt niet zomaar zeggen een leeg veld krijgt de waarde 0. In sommige gevallen zal dat prima werken, maar ik kan me ook situaties voorstellen waarin dat niet werkt.
Vanuit dat oogpunt lijkt NULL me wel makkelijk, omdat je dan overal dezelfde (NULL)value hebt, als het veld niet is ingevuld. En niet de ene keer 0 de andere keer false en de andere keer 'none' of 'empty'.
Snap je wat ik bedoel?
Ja ik begrijp wel wat je bedoelt, maar op het moment dat je een nullable kolom in je tabel hebt ben je gedenormaliseerd. En het argument 'makkelijk' is geen argument om te gaan denormaliseren.
Op jouw manier krijg je veel sneller vervuiling, want een kolom kan NULL, 0 of '' zijn, is maar net hoe de programmeur er tegen aan kijkt.
Ik zou in het geval van een extra emailadres, eerder al de emailadressen in een aparte tabel opslaan.
Als je over een tijdje besluit dat er twee extra emailadressen opgegeven kunnen worden ....
Ik zou in het geval van een extra emailadres, eerder al de emailadressen in een aparte tabel opslaan.
Als je over een tijdje besluit dat er twee extra emailadressen opgegeven kunnen worden ....
Waar eindigt voor jou dan het normaliseren?
Niet cynisch bedoeld (en dus ook zo niet lezen), maar ik vraag me wel vaker af waar je dan de grens moet trekken.
Nederland telt bijvoorbeeld amper duizend plaatsnamen. Plaatsnamen passen in elk geval met gemak in een aparte tabel met een SMALLINT als primair sleutel. Toch wil iedereen altijd maar de plaatsnaam opslaan in een VARCHAR.
Waar houdt normaliseren op en begint over-normaliseren?
>> Op jouw manier krijg je veel sneller vervuiling, want een kolom kan NULL, 0 of '' zijn, is maar net hoe de programmeur er tegen aan kijkt.
Ik snap hoe jij er tegenaan kijkt en ook waarom. Ik ben wel benieuwd hoe dat in de praktijk dan werkt.
Stel je hebt een website waar bedrijven informatie over zichzelf op kunnen zetten. Het bedrijf kan via een formulier een aantal vragen invullen. Stel nu, een vraag is hoeveel medewerkers er in dienst zijn en een bedrijf wil dit niet vermelden. Hoe geef je dat dan aan in de database?
Kom ik nog even terug op mijn eerdere opmerking. Dan krijg je dus in het ene geval -1, in het andere geval 'empty', weer ergens anders een lege string ''. Wat is daar dan het voordeel van? Hoe ik het nu zie lijkt het me juist lastiger omdat je telkens moet gaan terugzoeken wat ook alweer die waarde was. In het geval van null hoeft dat niet.