16. März 200619 j Hi Leutz, wie speichert Ihr Werte true/false oder 1/0 in einer MySQL Datenbank? Benutzt Ihr dafür A: tinyint(1) für 0=false und 1=true B: enum('Y','N') C: enum(1,0) D: char(1) für 0=false und 1=true E: noch andere? Eigentlich ist ja enum das richtige Feld dafür, ich sehe aber auch immer wieder andere Varianaten wie z.B. "D: char(1) für 0=false und 1=true" Welche Vorteile haben die einzelnen Feldtypen für diese Verwendung und wirkt sich dies auf die Abfrageperformance in irgendeiner Beziehung aus? Ich habe bis jetzt immer Variante "B: enum('Y','N')" benutzt. Gruß Oneside
16. März 200619 j A: tinyint(1) für 0=false und 1=true Dann spart man sich in PHP (und jeder anderen Sprache, die 0 als False und den Rest als true interprtiert) nen bischen arbeit.
16. März 200619 j Dann spart man sich in PHP (und jeder anderen Sprache, die 0 als False und den Rest als true interprtiert) nen bischen arbeit. Und wieso dann nicht "C: enum(1,0)"? Wo liegt der Unterschied? Ist es durch ein enum Feld in der Datenbankverwaltung nicht leichter ersichtlich, dass dieses Feld für True oder False benutzt wird?
16. März 200619 j tinyint hat die größe 1 Byte, enum 1 oder 2 Byte. Allerdings kann Enum 65535 Werte haben und tinyint nur 256. True oder False würde ich daher mit tinyint abbilden, zumal es einfacher ist eine Zahl als ein varchar zu benutzen.
16. März 200619 j wie speichert Ihr Werte true/false oder 1/0 in einer MySQL Datenbank? MySQL kennt den Typ Boolean. Allerdings ist es (bis jetzt) nur ein Alias auf den Typ TinyInt BOOL, BOOLEAN These types are synonyms for TINYINT(1). The BOOLEAN synonym was added in MySQL 4.1.0. A value of zero is considered false. Non-zero values are considered true.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.