In uw model , het object heeft 8 booleaanse eigenschappen. Dat impliceert 8 boolean (TINYINT voor MySQL) kolommen in uw databasetabel en 8 getter/setter-methoden in uw object. Eenvoudig en conventioneel.
Heroverweeg uw huidige aanpak. Stel je voor wat de volgende man die dit ding moet onderhouden zal zeggen.
CREATE TABLE mytable (myfield BIT(8));
Oké, het lijkt erop dat er hier wat binaire gegevens plaatsvinden.
INSERT INTO mytable VALUES (b'00101000');
Wacht, kan iemand me nog eens vertellen waar die enen en nullen voor staan.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Wat?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF!? WTF!?
steekt zichzelf in het gezicht
-- ondertussen, in een alternatief universum waar feeën met eenhoorns spelen en programmeurs geen hekel hebben aan DBA's... --
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Geluk en zonneschijn!