私は学生、TA、教師、クラスの関係に取り組んでいます。各クラスには 1 人の教授と 1 人の TA が関連付けられていますが、TA も学生になることができます。ということで(下の写真)そのようなアイデアを思いつきましたが、そのような循環的な関係を作ることが正しいかどうかわかりませんか?
前もって感謝します。
私は学生、TA、教師、クラスの関係に取り組んでいます。各クラスには 1 人の教授と 1 人の TA が関連付けられていますが、TA も学生になることができます。ということで(下の写真)そのようなアイデアを思いつきましたが、そのような循環的な関係を作ることが正しいかどうかわかりませんか?
前もって感謝します。
あなたのレイアウトは円形ではありません。あなたが持っている:
Class-list -> Student
と
Class-list -> Class -> Student
含めた場合にのみ、レイアウトが円形になりますStudent -> Class-list
問題があるようには見えません。
私には問題ないように見えますが、すべての TA が学生になるかどうかについて考えた方がよいかもしれません。
テーブル間の線は関係です。したがって、この場合、実際には循環参照を作成していません。
1 つのパスでは、1 つの class_list には 1 人の生徒がいて、1 つのクラスには複数の class_list があると言っています。別のパスでは、1 つのクラスに 1 人の TA がいて、その TA は学生でなければなりません (おそらく「isTA」フラグが設定されています)。
学生がクラスに参加して TA になることを妨げるものは何もありませんが、これで世界が終わるわけでもありません。このような状況が発生する可能性は非常に高いかもしれません。
同じクラスの学生と TA の両方になることができない場合、循環関係を完全に構築することはできません。データベースに値を設定できるようにする前に、そのようなケースをチェックすることで、そのようなことが起こらないようにすることができます。
仮にそうなったとしても、問題はないと思います。循環関係の問題は、値が決して定義されないことです (つまり、StudentID
各テーブルから外部キーとして参照されますが、定義されません)。これは、データベース レイアウトには当てはまりません。