Я бы использовал для этого двоичное поле SET
, но без обозначения опций специально в базе данных.Вся «маркировка» будет выполняться внутри вашего кода, но она предоставляет некоторые очень гибкие параметры.
Например, вы можете создать SET
, содержащий восемь «параметров», таких как;
`column_name` SET('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') NOT NULL DEFAULT ''
В вашем приложении вы можете определить «a» как «активный» или «пассивный», «b» может обозначать «скрытый», а остальные можно оставить неопределенными, пока они вам не понадобятся.
Затем вы можете использовать всевозможные полезные двоичные операции с полем, например, вы можете извлечь все те, которые «скрыты», запустив;
WHERE `column_name` & 'b'
И все те, которые являются «активными» И«Скрыто» при выполнении;
WHERE `column_name` & 'a' AND `column_name` & 'b'
Вы даже можете использовать операторы LIKE
и FIND_IN_SET
для выполнения еще более полезных запросов.
Прочтите документацию MySQL для получения дополнительной информации;
http://dev.mysql.com/doc/refman/5.1/en/set.html
Надеюсь, это поможет!
Дейв