What\'s the best practice for fields that hold true/false values?
Such columns can be defined as enum(\'yes\',\'no\') or as tinyint(1). Is one better/faster than the
avoid enum from this reasons
The bottom line is that ENUM has its place, but should be used sparingly. The model should enforce the constraints, not the database; the model should handle interpreting raw data into useful information for your views, not the database.
BOOLEAN
type is there for a reason. It is indeed a TINYINT(1)
but since it's there, it must be the recommended way.
Also, ENUM
is a non-standard MySql extension. You should avoid it, especially if you can achieve the same results in a standard way.