Допустим, у меня есть таблица категорий, в которой хранятся категории.Он реализован в стиле вложенного набора (с левыми и правыми значениями).
category_id lft rgt
1 1 6
2 2 5
3 3 4
Таким образом, категория 1 является родительской для категории 2. Категория 2 является родительской для категории 3. Таким образом, это по существу один путь изот корня до листа.
Поля категории категории 1 должны наследоваться категорией 2, которая, в свою очередь, наследуется категорией 3
Теперь, каков наилучший способ хранения полей для конкретногокатегория?Мое решение состояло в том, чтобы создать другую таблицу, которая имеет внешний ключ идентификатора категории и имя поля.
category_id fieldname
1 field1
1 field2
2 field3
3 field4
Моя проблема с этим подходом состоит в том, что при получении полей категории 3 мне нужно получить его родителя, егородительский родитель и так далее, пока я не доберусь до корневого узла, чтобы я мог наследовать их поля.Это не очень плохое решение, но мне интересно, сработает ли это, когда таблица категорий очень велика.
Так что проблема в основном заключается в проблеме оптимизации.Это оптимальное решение?