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 other?
Is it better to use enum('1','0') vs. enum('yes','no') (i.e., does it write 'yes' or 'no' as a string to every row so the database storage size gets bigger)?
avoid enum from this reasons
BOOLEAN
type is there for a reason. It is indeed aTINYINT(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.