I present what I consider the best approach to data modelling the real word, by identifying the fundamental aspects of data and applying this to an inherited hierachical data model
The problem with enums in databases are many fold. They are tempting because it seems like they make your database more readable, however. I avoid using them and as of today I've never found a good use for them which doesn't fall foul of one of the many problems that designing a database which contains enums leaves you open to.
bq.
Usually when designing a database there are a few fields in various tables that define things such as type, category, group. Normally these would be sufficiently important to justify their own entity within the database - so for example you'd have a category table.