Я нашел это сообщение SO при поиске того же самого, URL-адрес , опубликованный Phpdevpad , отлично подходит для понимания того, как Модель списка смежности и Модель вложенного набора работать и сравнивать друг с другом.Статья очень поддерживает модель вложенного набора и объясняет многие недостатки модели смежного списка, однако Я был очень обеспокоен массовыми обновлениями, которые мог бы вызвать вложенный метод .
Основным ограничением списков смежности, изложенных в статье, было то, что для каждого уровня глубины требовалось дополнительное самостоятельное соединение.Однако это ограничение легко преодолевается с использованием другого языка (такого как php) и рецессивной функции для поиска детей, как показано здесь: http://www.sitepoint.com/hierarchical-data-database/
фрагмент из URL выше с использованиемМодель списка смежности
<?php
// $parent is the parent of the children we want to see
// $level is increased when we go deeper into the tree,
// used to display a nice indented tree
function display_children($parent, $level) {
// retrieve all children of $parent
$result = mysql_query('SELECT title FROM tree WHERE parent="'.$parent.'";');
// display each child
while ($row = mysql_fetch_array($result)) {
// indent and display the title of this child
echo str_repeat(' ',$level).$row['title']."n";
// call this function again to display this
display_children($row['title'], $level+1);
}
}
// $node is the name of the node we want the path of
function get_path($node) {
// look up the parent of this node
$result = mysql_query('SELECT parent FROM tree WHERE title="'.$node.'";');
$row = mysql_fetch_array($result);
// save the path in this array
$path = array();
// only continue if this $node isn't the root node
// (that's the node with no parent)
if ($row['parent']!='') {
// the last part of the path to $node, is the name
// of the parent of $node
$path[] = $row['parent'];
// we should add the path to the parent of this node
// to the path
$path = array_merge(get_path($row['parent']), $path);
}
// return the path
return $path;
}
display_children('',0);
Заключение
В результате я теперь убежден, что модель списка смежности будет намного проще в использовании и управлении движением вперед.