Я добавляю теги к нескольким моделям (сообщения, статьи, фотографии и т. Д.). Мне известны плагины для маркировки рельсов, но я предпочитаю не использовать их, поскольку они не совсем соответствуют моим конкретным потребностям.
Я знаю, что типичным способом реализации поддержки полиморфных тегов является использование 2 таблиц Tag, Taggings и настройка соответствующих отношений has_many: through.
Но, поскольку я думаю об этом немного больше - и вот мой вопрос: есть ли необходимость в таблице тегов. Есть ли какие-либо недостатки в использовании только таблицы тегов и мои отношения такие:
Post, Article, Photo
has_many :taggings
Taggings (attributes)
taggable_type
taggable_id
tag_name
Тогда мне просто нужно было бы самостоятельно управлять вставкой / удалением тегов. По сути, я хотел бы просто сохранить атрибут tag_name непосредственно в таблице тегов вместо таблицы тегов.
Преимущества заключаются в том, что исключается управление таблицей, нет соединений для получения имен тегов (хотя я буду делать много SELECT DISTINCT).
Не могли бы вы сообщить мне ваши мысли по поводу этого дизайна?
Спасибо.