Във вашия модел , обектът има 8 булеви свойства. Това предполага 8 булеви (TINYINT за MySQL) колони във вашата таблица на базата данни и 8 метода за получаване/задаване във вашия обект. Прост и конвенционален.
Преосмислете сегашния си подход. Представете си какво ще каже следващият човек, който трябва да поддържа това нещо.
CREATE TABLE mytable (myfield BIT(8));
Добре, изглежда, че тук ще се случват някои двоични данни.
INSERT INTO mytable VALUES (b'00101000');
Чакай, някой да ми каже отново какво означава всяка от тези 1 и 0.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Какво?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF!? WTF!?
забива себе си в лицето
-- междувременно, в алтернативна вселена, където феите играят с еднорози и програмистите не мразят DBA... --
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Щастие и слънце!