Другой подход называется «вложенной множество», я думаю, не «вложенное дерево».
В любом случае, хорошая карта сайта заключается в том, что вы можете узнать ее максимальную глубину. Я думаю, что проблема с моделью смежности заключается в том, что соответствующий SQL работает на одном уровне за раз, поэтому, если у вас есть уровни «n», тогда вам нужен цикл «n» SQL-операторов ... но я думаю (я ' m not sure), что, если вы знаете максимум «n» заранее, вы можете закодировать соответствующий SQL-номер с фиксированным числом нескольких уровней.
0,3 секунды звучит для меня как очень длительное время, чтобы изобразить 200 страниц, так что это, вероятно, хорошо.
Также карта сайта не обновляется очень часто; поэтому, даже если это займет много времени, чтобы извлечь из SQL, вы, вероятно, можете кэшировать извлеченное/вычисленное дерево в ОЗУ.
В качестве альтернативы вместо того, чтобы беспокоиться о SQL для построения дерева, вы можете просто сохранить его как можно проще (как список смежности), извлечь его из базы данных в виде простого набора строк и построить дерево в ОЗУ (используя петли на языке программирования высокого уровня) вместо использования циклов в SQL для построения дерева с помощью SQL-инструкций.
поэтому в основном, ваш вопрос, если какая-то неизвестная реализация некоторых структуры данных, работающая на неизвестной части оборудования собирается занять менее 0,3 сек? хороший. – shoosh
@Shy - база данных MySQL innoDB в стеке LAMP. – 2009-02-13 03:52:12
Не должно быть так сложно собрать прототип и выполнить некоторые стендовые испытания. В какой RDBMS будет приниматься это решение? –