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