I din modell , objektet har 8 booleska egenskaper. Det innebär 8 booleska (TINYINT för MySQL) kolumner i din databastabell och 8 getter/setter-metoder i ditt objekt. Enkelt och konventionellt.
Tänk om ditt nuvarande tillvägagångssätt. Föreställ dig vad nästa kille som måste underhålla den här saken kommer att säga.
CREATE TABLE mytable (myfield BIT(8));
OK, det verkar som att vi kommer att ha lite binär data här.
INSERT INTO mytable VALUES (b'00101000');
Vänta, någon berätta för mig igen vad var och en av dessa 1:or och 0:or står för.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Vad?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF!? WTF!?
hugger sig själv i ansiktet
-- under tiden, i ett alternativt universum där älvor leker med enhörningar och programmerare inte hatar DBAs... --
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Lycka och solsken!