L3, but as the values are conceptually dynamic, they will always be accessed from the class where they are defined. This does also mean that cannot be evaluated in switch statements. It has these advantages: Compact data storage in situations where a column has a limited set of possible values. The strings you specify as input values are automatically encoded as numbers. The index of each value is also shown. An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.) A table can have no more than 255 unique element list definitions among its ENUM and SET columns considered as a group.
String. It would also be nice to be able to reference the string values as a particular enum type, for the purposes of validation and strong-typing. Options Constants The first thing I naturally gravitated towards was constants defined in a specific class.