2009-03-18 14 views
0

例えば、犬の繁殖情報、植物の交配、複雑な人間関係などを保持するための標準的なデータ構造が必要です。子孫関係に使用する最良のデータ構造は何ですか?

子孫ごとに2つ以上(遺伝子工学的には)親の組み合わせ、親の組ごとに複数の異なる子孫、親の複数の動き(他の多くのものと交配するスタッド馬馬)、養子縁組などは、これを非常に断片化した構造にしています。

誰かがこれに先立って取り組んでいると思います。私が調べなければならないリソースはどれですか?

答えて

2

私はもちろん

など、何を持っていることは、メインの関係は「child_of」、「direct_descendant」であるだけのシンプルなリレーショナルデータベース、だと思う、ここでは特定のデータ構造が非環式の、そしてあなたが望むかもしれません標準SQLエンジンでは通常サポートされていない推移的なクエリ(...の子孫の子孫)を実行します。

メモリ内で処理したい場合は、有向非循環グラフ(DAG)を使用できます。

+0

ほとんどのSQLエンジンは、記述した内容を行うための再帰的なクエリをサポートしています。 MySQLはFROM句を使用します –

+0

はい、FROMはサブクエリを作成しますが、推移的なクエリ(*任意に多数の「ステップ」の子孫)はそのパターンと一致しません。すべての "FROM"は、1つの子孫ステップしか処理できません。 –

1

DAGのような匂い。指向型と非循環型があまりにも制限されている場合は、graph theory data-structuresを見てください。

抽象的な問題のグラフを使用すると、頂点はエンティティを表し、エッジは関係を表します。

関連する問題