Moin!
Ich mach mir immer wieder einen Kopf über die Frage, wie ich boolsche Werte am besten in einer
DB-Tabelle speichere mit Blick auf Indizierbarkeit, Performance und lesbaren Delphi-Code. Einen dedizierten Bool-Typ gibt es bei MariaDB (
MySQL) ja nicht.
Drei Varianten fallen mir ein:
Delphi-Quellcode:
BoolVar:= (Fields.FieldByName('TheName').AsInteger > 0); { INT(1) }
BoolVar:= (Fields.FieldByName('TheName').AsString <> '0'); { ENUM('0','1') }
BoolVar:= (Fields.FieldByName('TheName').AsInteger > 0); { TINYINT(1) }
Alle drei Varianten werden innerhalb der
DB als Integer abgebildet und lassen sich indizieren.
Daneben gäbe es noch den Feldtyp BIT(1), wobei ich keine Ahnung habe wie der intern abgebildet wird in der
DB.
Darum mal die Frage in die Runde: Wie macht ihr das so?
Grüße
Cody