私はデータベースについて多くの知識を持っていませんが、ここで私は1つを設計しようとしています。通常はシンプルなデータベースを設計できますが、このシナリオは私にとっては非常に混乱しています。ほとんど同じ操作をしている2つのエンティティが結合されているかどうか
レッツは、私が組織、組織のトレーナーと独立したトレーナーである3つの主なエンティティを持っていると言います。
私のシステムでは、組織はコースを追加して、追加されたコースに組織のトレーナーを割り当てることができます。組織のトレーナーはコースを追加することはできませんが、レッスンは追加することしかできません。
組織に関係のない独立したトレーナーは、コースを加えてレッスンを追加することができます。
だから私の質問は、ある組織のトレーナーと独立したトレーナーは、このような組み合わせのテーブルが必要です: -
| Organization |
----------------
| id |
| name |
| Trainer |
-----------
| id |
| org_id |
| name |
| Course | | Lesson |
---------------- ----------------
| id | | id |
| org_id | | ind_train_id |
| ind_train_id | | org_train_id |
| name | | name |
それとも、彼らは離れて滞在する必要があります: -
| Organization | | Organization's trainer |
---------------- --------------------------
| id | | id |
| name | | org_id |
| name |
| Independent Trainer |
-----------------------
| id |
| name |
| Course | | Lesson |
---------------- ----------------
| id | | id |
| org_id | | ind_train_id |
| ind_train_id | | org_train_id |
| name | | name |
をそれらを組み合わせる必要がある場合、Trainerテーブル(トレーナは独立しています)の外部キーはどうなりますか?他の(組織のトレーナー)がOrganizationテーブルの親キーを持っている間にnullにすることはできますか?このメソッドが実行されると、今後の問題はありますか?
これらを組み合わせてはならない場合、両方のテーブルのすべての列が冗長であるとは限りません(組織の外部キー属性にもかかわらず同じ属性を持つため)。
「外国のキーに関する制約」とは何を意味しますか? Nullはデータがないことを意味しますか? – Kaydarin
nullはデータが正しくないことを意味します。 「外部キーの制約なし」とは、外部キーを作成した後、そのキーにNULLを設定しないように制約を作成しないことを意味します。 –
申し訳ありません....後でデータベースを設定するための注意点...ありがとうございました! – Kaydarin