java我应该如何对数据库建模,以便数据库中的每个学生实体都有一个与每个课程实体相关的分数?
我正在制作一个JavaCRUD应用程序,作为大学管理工具。我的数据库包含5个表(学院、学习计划、课程、教授和学生)。我想展示和管理每门课程的每个学生的成绩。我将学生和课程映射为多对多关系->;一个学生一次可以参加许多课程,一个课程有许多学生参加。我需要创建一个额外的表,还是应该在我的课程对象中实现一个包含Student和Integer(grade)作为键值对的HashMap? 还是有更好的方法来实现这一点
这是我的学生波乔:
@Data
@EqualsAndHashCode(callSuper=false)
@Entity
public class Student extends Person implements Serializable{
private String JMBAG;
@ManyToMany(mappedBy = "students")
private List<Course> courses;
}
这是我的课程POJO:
@Data
@EqualsAndHashCode(callSuper=false)
@Entity
public class Course extends CollegeManagerEntity implements Serializable {
private String name;
private Integer year;
private Integer ects;
private Integer numberOfClasses;
private Integer numberOfAuditorialExercises;
private Integer numberOfLaboratoryExercises;
private Integer numberOfConstructionalExercises;
@ManyToMany
private List<Professor> professors;
@ManyToMany
private List<Student> students;
@ManyToMany(mappedBy = "courses")
private List<StudyProgramme> studyProgrammes;
}
# 1 楼答案
如果您选择使用HashMap,它将如何在DB中实现?数据库模式会是什么样子
通过遵循RDBMS方法,您需要一个新表。类似于this。 新实体将如下所示:
然后你需要将你的新实体映射到学生和课程类