1

いくつかの階層データがあります (現在 6 レベル)。各レベルには異なる属性があります。

各レベルに個別のテーブルを追加し、各テーブルの親レベルに外部キーを追加しました。しかし、それが正しいアプローチかどうかはわかりません。

Level1: id, ColA, ColB, ColC
Level2: id, ColD, ColE, ColF, level1_Id
Level3: id, ColG, ColH, level2_Id
Level4: id, ColI, ColJ, ColK, ColL, level3_Id
Level5: id, ColM, level4_Id
Level6: id, ColN, ColO, level5_Id

時間内に追加のレベルが来るでしょう。したがって、いくつかのレベルを追加または削除できるように、デザインは柔軟でなければなりません。もちろん、パフォーマンスは維持する必要があります。

どのデザインに従うべきですか?

4

1 に答える 1

1

残念ながら、無制限のレベルとパフォーマンスを提供するほど柔軟ではないという意味で、これは最善の方法ではありません。

この問題は「階層データ モデル」と呼ばれ、いくつかの実装方法があります。最も移植性の高い形式は、「ネストされたセット」モデルと呼ばれます。その他のモデルは、隣接モデル、および Oracle と Microsoft のベンダー固有のモデルです。

ここにあなたが始めることができるものがあります

http://www.evanpetersen.com/item/nested-sets.html http://www.sqlsummit.com/AdjacencyList.htm

于 2012-08-17T13:21:41.933 に答える