2016-11-17 3 views
-2

У меня есть иерархические данные в MySQL. И это не совсем древовидная структура, а больше графика. У любого ребенка может быть любое количество родителей. В таких случаях, как я могу получить доступ к всем дочерним элементам узла, не потеряв их? Могу ли я использовать модель вложенного набора в любом случае?Вложенная модель для диаграммных структур

+1

Можете ли вы опубликовать код, показывающий, что вы пробовали до сих пор? –

ответ

0

Граф - это набор узлов и набор ребер. Узлы могут быть представлены в обычной таблице, а ребра могут быть представлены следующим образом.

|id|node_1|node_2| 
| 1| 1234| 1235| 
| 2| 1234| 1236| 
| 3| 1236| 1237| 
| 4| 1237| 1238| 

Запрос для всех родителей узла 1234 бы просто.

SELECT node_2 FROM edges WHERE node_1 = 1234 

Обход графы в реляционных базах данных, однако, может быть громоздким и неэффективным, и если ваш набор данных от умеренной до большой она может иметь смысл посмотреть на graph database as an alternative.