スキーマをそのように想像してみてください。 テーブル内の外部キーのショートカット
NOTE TABLE: NoteID, Note, DetailedTaskID, .....
DETAILED TASK TABLE: DetailedTaskID, WorkOrderID, .....
WORKORDER TABLE: WorkOrderID, ProjectID, .....
PROJECT TABLE: ProjectID, .....
は今、このスキーマに私が参加するのかなりの数で終わる特定のプロジェクトに関連付けられているすべてのノートを取得したいと言うことができます。
IE: Note JOIN DetailedTask JOIN WorkOrder JOIN Project
(今までであれば)、それは適切な(この場合はPROJECTID)テーブルの「ショートカット」列を追加するときに私の質問は、このですか?だから、基本的にはこれにメモテーブルを変更
:たNoteID、ノート、DetailedTaskID、PROJECTID
どうすれば確認できますか? 「あまり危険ではない」と言えば、バグによって1つの外部キーが1つのプロジェクトを指し、別の外部キーが別のプロジェクトを指し示すシナリオを意味すると見なします。 –
ちょうどそうです。この場合、あなたのコード(または後で追加された他人のコード)の見落としによって、あるテーブルの外部キーが更新される可能性があります。または、2番目の表の行の正規化されていない外部キーの値の一部のみを更新することができます。または、2番目のテーブルの行数が多すぎると更新される可能性があります。正規化された表から、時には正規化されていない表から外部キー値を取得している場合は、すぐに、または一貫してこれらのエラーを表示しないことがあります。それはできますが、最初にそれを行う必要が本当にあることを確認してください。 –
おかげさまでありがとうございます... –