Посмотри здесь как можно интересно сделать с атрибутами, у которых ограниченное число значений:
https://github.com/brainspec/enumerize