I would use a binary SET field for this, but without marking options specific to the database. All "marking" will be done inside your code, but it provides some very flexible options.
For example, you can create a SET containing eight “options”, for example:
`column_name` SET('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') NOT NULL DEFAULT ''
In your application, you can define "a" to mean "Active" or "Passive", "b" can mean "Hidden", and the rest can be left undefined until you need them.
Then you can use all sorts of useful binary operations in this field, for example, you can extract everything that is "hidden" by running;
WHERE `column_name` & 'b'
And all those that are "active" and "hidden" are launched;
WHERE `column_name` & 'a' AND `column_name` & 'b'
You can even use the LIKE and FIND_IN_SET to perform even more useful queries.
For more information, read the MySQL documentation;
http://dev.mysql.com/doc/refman/5.1/en/set.html
Hope this helps!
Dave