Trong mô hình của bạn , đối tượng có 8 thuộc tính boolean. Điều đó ngụ ý 8 cột boolean (TINYINT cho MySQL) trong bảng cơ sở dữ liệu của bạn và 8 phương thức getter / setter trong đối tượng của bạn. Đơn giản và thông thường.
Suy nghĩ lại cách tiếp cận hiện tại của bạn. Hãy tưởng tượng chàng trai tiếp theo phải duy trì điều này sẽ nói gì.
CREATE TABLE mytable (myfield BIT(8));
Được rồi, có vẻ như chúng ta sắp có một số dữ liệu nhị phân ở đây.
INSERT INTO mytable VALUES (b'00101000');
Chờ đã, ai đó hãy cho tôi biết lại từng số 1 và số 0 đó là viết tắt của gì.
SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| ( |
+------------+
Cái gì?
SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';
WTF !? WTF !?
tự đâm vào mặt mình
- trong khi đó, trong một vũ trụ thay thế, nơi các tiên chơi với kỳ lân và các lập trình viên không ghét DBA ... -
SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;
Hạnh phúc và ánh nắng!