W Twoim modelu , obiekt ma 8 właściwości logicznych. Oznacza to 8 kolumn logicznych (TINYINT dla MySQL) w tabeli bazy danych i 8 metod pobierających/ustawiających w obiekcie. Prosty i konwencjonalny.
Przemyśl swoje obecne podejście. Wyobraź sobie, co powie następny facet, który musi się tym zająć.
CREATE TABLE mytable (myfield BIT(8));
OK, wygląda na to, że będziemy mieć tutaj trochę danych binarnych.
INSERT INTO mytable VALUES (b'00101000');
Zaczekaj, ktoś mi jeszcze raz powie, co oznacza każda z tych jedynek i zer.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Co?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF!? WTF!?
uderza się w twarz
-- tymczasem w alternatywnym wszechświecie, w którym wróżki bawią się jednorożcami, a programiści nie nienawidzą DBA... --
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Szczęście i słońce!