При воссоздании моей CMS мне нужна была альтернатива традиционному подходу родитель / потомок для управления иерархией карты сайта / страницы. Я вспомнил, что некоторое время назад видел модель вложенного множества, но не мог вспомнить, как она называлась. Итак, я наткнулся на похожий подход, который я хочу оценить и сравнить свойства, чтобы убедиться, что я не столкнусь с тупыми ограничениями позже, потому что я не использовал то, что уже проверено временем. Итак, пожалуйста, сообщите, А) это уже изобретено (как это называется ?!), Б) есть ли фундаментальные недостатки в свойствах, или В) это хороший подход (пожалуйста, дайте хорошее обоснование!).
Обратите внимание на этот список:
Я полагаю, что в рамках модели вложенных множеств вы храните дескрипторы левого / правого для каждого узла с обходом в глубину:
Home 1-18
About Us 2-3
Contact Us 4-5
Products 6-13
Clothing 7-8
Books 9-10
Electronics 11-12
Knowledge Base 14-15
Other stuff 16-17
И вот мой "неправильный путь", который я начинаю любить больше:
Home 1-9
About Us 2-2
Contact Us 3-3
Products 4-7
Clothing 5-5
Books 6-6
Electronics 7-7
Knowledge Base 8-8
Other stuff 9-9
Вместо пары левая / правая я храню ID и LAST_CONTAINED_ID. Я обнаружил, что многие свойства одинаковы (или очень похожи):
Кроме того, ID служит уникальным идентификатором, зависящим от порядка (без пробелов!). Мне также было проще хранить ссылки DEPTH и PARENT для простоты, но, насколько я понимаю, это почти то же самое и для вложенных наборов.
Итак, считается ли это вложенным набором? И это уже распространенный подход (но почему я не слышал о нем раньше ...)? Есть ли веская причина, почему я должен использовать настоящий вложенный набор поверх этого?
Я приветствую ваши мысли.