У меня есть приложение rails, которое включает в себя теги для сообщений в блогах с использованием драгоценного камня, который действует как пометка. Моя идея состоит в том, чтобы расширить механизм тегов этого драгоценного камня, используя подход с умеренными ссылками, где я могу создать нескольких пользователей в качестве владельцев тегов, и они могут связать один тег с другим как родительский/дочерний.
В настоящее время в системе есть независимые теги, такие как Education
, Child Education
и Distance Education
.
Владелец тега Education
может выбрать Child Education
и Distance Education
в качестве дочерних элементов первого уровня и связать их вместе. Эта связь не будет видна до тех пор, пока она не будет одобрена таксономистом (администратором тегов).
Точно так же конечный пользователь также может предложить тег Distance Education
в качестве дочернего для Education
, и этот запрос станет видимым для администратора тега. На основании его одобрения отношения будут установлены.
Вот несколько вопросов, которые у меня есть относительно вышеуказанного требования:
Рекомендуется ли расширить гем или мне следует использовать независимую модель тегов, написанную с нуля для поддержки этой иерархической системы?
Если я продолжу со схемой, предоставленной драгоценным камнем, какую модель следует использовать для разработки такого требования. В частности, должен ли я использовать одну таблицу со столбцом parent_id с идентификатором тега и именем тега? Или я должен поддерживать их отношения в отдельной таблице с ассоциациями «многие ко многим» (tag_id, parent_tag_id (как внешний ключ)).
Я также новичок в структурах данных, поэтому мне потребуются некоторые начальные данные по выбору алгоритмов для эффективного перемещения между семействами тегов. Использование связанного списка было одним из моих вариантов, однако, учитывая мантру Rails о соглашении над конфигурацией, я действительно не уверен, как это сделать.