хм, а как в БД хранят типы? допустим, у нас есть какой-нибудь заказ в Ozon и там есть состояния ACCEPTING, PACKAGING, WAITING, DELIVERING
если мы берем типы, то каждое из этих состояний - отдельный тип с ограниченным набором полей. но в БД же не станешь класть по разным таблицам. (понимаю, что а) можно и по разным таблицам, б) заказ на Ozon может быть не лучшим примером)