Eddie: MySQL ==> boolean?

Hallo allerseits,
sagt mal, wie speichert Ihr Boolean-Werte ab? Bisher habe ich immer irgendein TINYINT gehabt und einfach 0 oder 1 abgespeichert.

Alternativ waere aber sicher auch ein CHAR mit 'true' oder 'false' möglich, oder gar ein ENUM mit nur diesen beiden Werten.

Ich lese und schreibe per PHP und bisher mache ich halt jedesmal einen 'Cast' von true nach 0 und von false nach 1.

Danke fuer Anregungen,
Eddie

  1. Hallo,

    sagt mal, wie speichert Ihr Boolean-Werte ab?

    ENUM (mit den moeglichen werten "true"/"false" oder 0/1) scheint mir dafuer das logischste.
    Kommt aber auch darauf an, wie Du es am bequemsten weiterverarbeiten kannst...

    Gruesse,

    Thomas

  2. Moin!

    Alternativ waere aber sicher auch ein CHAR mit 'true' oder 'false' möglich, oder gar ein ENUM mit nur diesen beiden Werten.

    Ich benutze gerne ENUMs, wobei ich die Problematik nur sehr selten habe, aus dem ENUM-Eintrag dann wieder einen Boolean-Wert für PHP zu machen. Solche Werte sind in der Regel interessant, um in SQL-Abfragen Verwendung zu finden. Da ENUMs aber intern auch als Bytewert dargestellt werden, und die DB als Service lediglich die Übersetzung von Wort in Bytewert und zurück übernimmt, ist die Verwendung eines unsigned TINYINT IMO absolut gleichwertig. Wenn du damit Vorteile in PHP hast, weil ein INT(0) zu FALSE evaluiert, und ein INT(1) zu TRUE, dann nutze das aus.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|