Я бы посоветовал вам основывать свой дизайн на том, на котором основан интернет-тег.
Позвольте мне объяснить вам:
Вам понадобится еще 4 таблицыВаша главная таблица объектов.
Первая : таблица тегов имен, это базовый идентификатор таблицы |имя, в котором будет храниться атрибут объекта: «автор», «размер», «вес»;все, что может описать объект
tag_table
id varchar(36)
tag varchar(36)
Второй : эта таблица будет сопоставлять значение с именами тегов, сохраненными в значении tag_table.Он имеет тот же дизайн
value_table
id varchar(36)
value varchar(36)
Третий : определит, какое значение является каким тегом.
tag_value
id_pair varchar(36)
id_tag varchar(36)
id_value varchar(36)
Четвертый :присоединится к объекту с его данными, которые заботятся о нем
object_tag_value
id_object varchar(36)
id_pair varchar(36)
и, наконец, к вашей таблице объектов.
Реализация иерархической системы :
Для одногоиерархия-ко-многим или многие-ко-многим реализует дополнительную таблицу, которая будет связывать два объекта:
object_relation
id_parent varchar(36)
id_son varchar(36)
Для многих-к-одному (например, таблица Employee с manager_id) просто добавьте id_parentкак член вашего объекта.
С этой схемой вы будете очень масштабируемы, теперь объект может иметь бесконечную характеристику, которой вы больше не ограничены.Кроме того, вы избегаете избыточности данных, потому что имена тегов уникальны.
Надеюсь, я был достаточно ясен и что вам это поможет,