私はクラスのデータベースを設計しようとしています。各クラスには多くのグループがありますが、各グループには多くの学生がいます。 グループと学生のクラスのデザインデータベース
私はこのように2つの実体関係図を描きました。 図1の円の関係が表示されます。 クラス2に学生を追加するにはグループを追加する必要があります。クラスにグループがない場合は、クラスに追加することはできません。どのように私はこの状況のためのデータベースを設計できますか?
私はクラスのデータベースを設計しようとしています。各クラスには多くのグループがありますが、各グループには多くの学生がいます。 グループと学生のクラスのデザインデータベース
私はこのように2つの実体関係図を描きました。 図1の円の関係が表示されます。 クラス2に学生を追加するにはグループを追加する必要があります。クラスにグループがない場合は、クラスに追加することはできません。どのように私はこの状況のためのデータベースを設計できますか?
最初の図には、循環機能の依存関係はありません。
Student -> Group (Belong to)
Student -> Group (Manage)
Group -> Student (Manage)
Group -> Class (Has)
Student -> Class (Belong to)
クラスは、学生やグループを決定するものではありませんので、何の環状「の言及は、」存在しない:「1」側に「多く」の側からそれらを読んでください。
循環的な関係は、起こりうる異常を注意する必要があることを警告することができます。この場合、生徒から生徒までの2つのパスで生徒を異なるクラスに関連付けることはできません。あなたのデータが有効であることに注意する限り、循環関係は問題ではありません。
2番目の図では、すべてのクラスに少なくとも1つのグループがあるという規則を採用することができます(つまり、サブグループがない場合、クラス全体がグループとしてカウントされます)。このようにして、すべての学生はグループを介してクラスに関連付けられ、その関連付けを直接記録する必要はありません。
私はむしろ、この時点ではダイアグラムがあいまいであると言います。 ER図から直接データベースを実装するのは危険です。伝統的に、物理モデルを準備して、すべての論理要件を確実に実装するようにします。アソシエーションを直接記録できるようにしながら、問題を軽減する物理的な実装(すなわち、非正規化および複合FK制約による)における完全性を処理する方法がある。 – reaanb
これらはあなたのDBのテーブルのようになります。
上記のデザインは、複数のグループに属している、または全くグループに属していない学生をサポートしています。これは、グループがただ1つのクラスに関連付けられていることを前提としています。これはまた、生徒がただ一つのクラスに関連付けられていることを前提としています。
質問:1. 1人の学生が複数のグループに所属できますか? 2.学生はグループに属していないことができますか? – Piyg
質問1現在の:いいえ、将来の多分質問2:はい – buggy3