0

データベーステーブルをたどるのに良い設計に従っているかどうか疑問に思います。

テーブル:

  • プロジェクト_提案
  • Milestones_Proposal
  • Resources_Proposal
  • 計画
  • Milestones_Project
  • Resources_Project

両方のマイルストーン テーブルに同じ列があり、両方のリソース テーブルに同じ列があります。

私の質問は、私がすべきかどうかです

  1. Milestones_Proposal を Milestones_Project とマージする
  2. Resources_Proposal を Resources_Project とマージする
  3. これらのテーブルのデータがプロジェクトまたはプロジェクト提案のどちらに属しているかを識別するための列「TYPE」を作成します
  4. 「Type」値に応じて、Project_Proposal または Project テーブルを指す Milestones および Resources の外部キーを定義します。

デザインは次のようになります。

  • プロジェクト_提案
  • 計画
  • マイルストーン
  • 資力

どうもありがとう、ピーター

4

1 に答える 1

0

同じフィールドがありますが、それらは(外部キーを介して)異なるテーブルを「指し示している」ため、それらを1つのフィールドにマージすることはできません。最終的には、タイプフィールドに基づいて一方のフィールドまたは他方のフィールドにNULL以外の値を含めることができるCHECKが作成されます。

この単純なケースでは、これはまったく問題ありません。あなたは基本的に、継承を実装するための3つの可能な戦略のうちの戦略#1に従っています。

于 2012-07-18T10:16:44.620 に答える