私は、有効なDAG(同形的に)である多重リンクリストに整理された一連のオブジェクトからなるデータ構造を持っています。これは、1つの単一の多重リンクリスト、またはメンバーを共有するかもしれない一連のn二重リンクリストとして見ることができます。 (これはAlgorithm for quickly obtaining a partial ordering over multiple linked listsのデータ構造と同じですが、私の質問に従ってください)SQLで多重リンクリストを表現する
このような多重リンクリスト/ DAGをSQLで表現するために、特定のSQLダイアレクトでは一般的な手法を探しています。
- DAG内の前と次のリンク、DAG のトポロジカル秩序与え
- 各二重リンクリスト内の前と次のリンクこの先の:それは与えられたノードを取得し、取得するのは簡単だというノードが属するノード
他の質問からサンプルデータの使用:
first = [a, b, d, f, h, i];
second = [a, b, c, f, g, i];
third = [a, e, f, g, h, i];
を私は、ノードf
与えられ、全体的なDAGのトポロジから[(c|d|e), g]
を得ることができ、また、{first: [d, h], second: [c, g], third: [e, g]}
リストの順序のそれぞれからになりたいと思います。
ここに楽しい部分があります:n、二重リンクリストの数は固定されておらず、いつでも大きくなる可能性があります。それが起こるたびにスキーマをやり直すのではないでしょうか。
私はこれまで、(a)大きなピクルをDBに入れて、順序を計算するためにそれを取り出すか、(b)リストを明示的に列挙して再帰的DB内の関係。
もっと良いものが見つからない場合は、(b)のオプションを使用しますが、これを簡単にするために魔法のものがあることを期待しています。
複数のセンチネルノードを持つ多重リンクリストを使用すると、着信リンク、発信リンク、トポロジ的に並べ替えられた隣接ノードの取得が比較的高速であるように効率的にどのように格納できますか?私は大きな画像が支援を提供しようとする人々の正確さと関連性を緩和し、XY問題を早期に検出するのを助けるときには、Q&Aが役に立たないことを知ります。リンクをありがとう、今読んでください。 :3 – Corbin