有两个实体,一个学生(student),一个课程(course);一个学生有多个课程,一个课程可以属于多个学生。
在关系表,除了student_id,course_id外,我还要存储开课时间和上课次数。
这在Hibernate中属于哪类关系呢?
谢谢!
[b]问题补充:[/b]
问题的关键:就是关系表里的字段我是有意义的
多对多的关系,开课时间放在course表里(一般都是同事开课吧),上课次数放在
student和course的关联表里比如:stu_cour(id, student_id, course_id, course_count)
这样就不要建立多对多的关系了
最好建立两个一对多(双向)的关系,一共三个表,三个实例
ManyToMany
@Entity
Student{
@ManyToMany
Set getLessons(){
};
}
@Entity
Lesson{
@ManyToMany(mappedBy="lessons")
Set getStudents(){
}
}
开课时间可以放在Lesson中,上课次数如果是针对Lesson的,还是放在Lesson里。
如果上课次数是记录Student在某Lesson的考勤上课次数,那上面的设计就行不通,需要专门建一张StudentToLesson类。
class Lesson{
}
class Student{
}
class StudentToLesson{
@ManyToOne
getStudent()
@ManyToOne
getLesson()
int getCount()
}
我的看法
一个学生(student),一个课程(course);一个学生有多个课程,一个课程可以属于多个学生。
多对多表只保存student_id,course_id
要存储开课时间和上课次数再做一个表吧