Integer of Enum?
Micha
02/03/2007 18:07:00Hallo!
Ik ben bezig met de optimale databasestructuur te bedenken voor een grote website.
Nu vroeg ik me alleen af wat beter is..
Een integer of enum?
Is bijvoorbeeld voor het activeren van een account enum('0','1') beter, of tinyint(1)?
En voor het opslaan van geslacht, wat is dan beter? Ook tinyint en in het script uitlezen, of enum('Man','Vrouw') ?
Ik hoop dat iemand me hier wat over kan vertellen!
Ik ben bezig met de optimale databasestructuur te bedenken voor een grote website.
Nu vroeg ik me alleen af wat beter is..
Een integer of enum?
Is bijvoorbeeld voor het activeren van een account enum('0','1') beter, of tinyint(1)?
En voor het opslaan van geslacht, wat is dan beter? Ook tinyint en in het script uitlezen, of enum('Man','Vrouw') ?
Ik hoop dat iemand me hier wat over kan vertellen!
PHP hulp
22/12/2024 09:47:09- SanThe -
02/03/2007 18:15:00Robert Deiman
02/03/2007 19:01:00@Micha
Voor het geslacht zou ik een enum nemen, man of vrouw. Het voordeel is dat je deze mogelijkheden uit kan lezen uit je tabel. Deze kan je dan ook in je script gebruiken. Stel dat je later nog een optie toe wil voegen (niet erg logisch bij geslacht, maar bijvoorbeeld "wil niet zeggen") Dan voeg je die optie toe aan je enum en het script verwerkt het.
Maar het echte voordeel van Enum is dat er nooit wat anders in het veld kan komen te staan dan die opties.
Voor het geslacht zou ik een enum nemen, man of vrouw. Het voordeel is dat je deze mogelijkheden uit kan lezen uit je tabel. Deze kan je dan ook in je script gebruiken. Stel dat je later nog een optie toe wil voegen (niet erg logisch bij geslacht, maar bijvoorbeeld "wil niet zeggen") Dan voeg je die optie toe aan je enum en het script verwerkt het.
Maar het echte voordeel van Enum is dat er nooit wat anders in het veld kan komen te staan dan die opties.
Martijn B
02/03/2007 19:34:00Maakt volgens mij niets uit omdat ze beiden 1 byte groot zijn.
enum zou trouwens ook 2 byte kunnen zijn.
enum zou trouwens ook 2 byte kunnen zijn.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Willem Jan Z
02/03/2007 19:40:00SanThe schreef op 02.03.2007 18:15:
Voor 0 of 1 zou ik een boolean nemen. (true/false)
Boolean is niks anders dan een TINYINT(1) kwam ik pas achter.
Jan Koehoorn
02/03/2007 19:44:00Als je zeker weet dat het altijd een veld met maximaal twee waardes blijft, kun je net zo goed een TINYINT nemen. Ik neem aan, maar dat heb ik niet getest, dat checks op grote tabellen sneller gaan op een integer, dan op een string. De waardes in een ENUM zijn vaak strings en daarop test een DB over het algemeen trager dan op een integer.