0

Chapters、SubChapter、Divisions の 3 つのテーブルがあります。これらの各テーブルには、「セクション」というテーブルに保存したい追加のレコードがあります。それらはすべて 1 対多の関係です。
私の質問は、ここで相互参照を確立する最良の方法は何ですか? これは私が現在持っているものです:

Chapter table:
     chapterID int
     partID int
     chapterNumber varchar
     chapterName varchar
SubChapter table:
     subChapterID int
     chapterID int
     subChapterNumber varchar
     subChapterName varchar
Division Table:
     divisionID int
     subChapterID int
     divisionNumber varchar
     divisionName varchar

Section Table:
     sectionID int
     parentID int
     parentType int (1 = chapter; 2 = subchapter; 3 = division)
     sectionNumber varchar
     sectionName varchar

私がここで直面している問題は、FK 拘束です。外部キーを廃止する必要がありますか?効率を改善するために何ができるか、またはそれが問題になるか?

不思議に思っている人のために、私の要件は、イントラネット Web ページのドロップダウン メニューに入力するために、州および連邦の行政コードの特定の側面にデータベースでアクセスできるようにすることです。

4

1 に答える 1

0

個人的には、親の種類ごとにセクションテーブルを作成すると、外部キーが正しく機能します。次に、すべての結合を結合するビューを作成して、これらの6つのテーブルを結合する繰り返しの性質を軽減します。

現在の設計は確かに評価できますが、FKを使用すると、孤立したデータを防ぐことができます。別の方法は、対応するセクションレコードがある場合に削除をエスケープするために、チャプター、サブチャプター、およびディビジョンに削除トリガーを追加することです。

于 2013-02-05T23:52:17.167 に答える