I din model , objektet har 8 booleske egenskaber. Det indebærer 8 booleske (TINYINT for MySQL) kolonner i din database tabel og 8 getter/setter metoder i dit objekt. Enkel og konventionel.
Genovervej din nuværende tilgang. Forestil dig, hvad den næste fyr, der skal vedligeholde denne ting, vil sige.
CREATE TABLE mytable (myfield BIT(8));
OK, det ser ud til, at vi vil have nogle binære data, der sker her.
INSERT INTO mytable VALUES (b'00101000');
Vent, nogen fortæller mig igen, hvad hver af disse 1'ere og 0'ere står for.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Hvad?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF!? WTF!?
stikker sig selv i ansigtet
-- i mellemtiden, i et alternativt univers, hvor feer leger med enhjørninger og programmører ikke hader DBA'er... --
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Lykke og solskin!