0

0/1 --> * 関係として自己参照する階層オブジェクト モデルを開発しています。parentID のないオブジェクトはルート要素です。parentID は、自己結合の外部キーでもあります。私の理解では、parentID を外部キーとして使用すると、子要素が見つかる可能性のある列のみがポイントされます --> これにより、その列のデータセット全体を反復処理する必要がありますか? これは、クラスター化インデックスを形成する必要があるシナリオですか? ....XML データ型を使用してすべての childrenID を 1 つのフィールドに格納し、そのドキュメントを読み込んでオブジェクトごとに参照するのは適切でしょうか? これを行うことで、少なくともオブジェクトの永続化レイヤーを簡素化し、トランザクションの記録をより詳細に制御できるようになります。

何かアドバイス?

4

1 に答える 1

1

XML を使用して子 ID を保存することは強くお勧めしません。アプリケーションの外部 (レポート ソリューションや ETL など) で使用しようとすることは言うまでもなく、今後もそれを維持しようとすると、数え切れないほどの頭痛の種になります。

HIERARCHYID データ型を調べましたか? これは SQL 2008 にあり、ここで役立つ場合があります。さまざまなプログラミング言語/ODBC/OLE DB がどのようなサポートを提供しているかはわかりませんが、.ToString() を使用して文字列に変換でき、非常に簡単に操作できます。また、.GetAncestor() など、T-SQL で HIERARCHYID の他のメソッドを使用することもできます。

于 2010-07-07T14:15:01.933 に答える