私はJPAを試しています。そのため、下図のような学生の入学手続きの例を考えています。
このデザインは良いですか?
改善のための提案は大歓迎です。
また、このためにどのエンティティクラスを作成する必要があるかについても混乱しています。特にCollege_Major
の場合、このためのEntityクラスが必要ですか、それともCollege
とMajor
の間の多対多マッピング用に作成されたマッピングテーブルのみである必要がありますか?
後者がより良い場合、Admission_Form
テーブルはどのように大学の専攻を参照できますか?
どちらの場合でも、College_Major
とAdmission_Form
のエンティティクラス(ある場合)はどのようにする必要がありますか?
問題を引き起こしているように見えるcollege_majorエリアを除いて、かなり堅実なデザインに見えます:)
個人的には、このテーブルを2つに分割します。
私はあなたがidフィールド(別名ビジネスニュートラル主キー)を使うのが好きです一貫性を保つために、Studentテーブルの主キーは、単なるIDではなく、student_idという名前にする必要があります。
Admission_Formという名前を考えてみてください。データベースは入学の成功を記録しているようです。これは必ずしもフォームから取得されるとは限らず、フォームによっては入学できない場合もあります。
場合によってはCollege_Majorを除いて、各テーブルにエンティティクラスが必要です。私の記憶が正しければ、Hibernateはコレクションを使用して多対多の関係を処理できます(たとえば、大学には専攻のリストがあり、専攻には大学のリストがあります)。