关于数据库开发,哪种变体更好?

BJl*_*du4 0 sql

我正在创建一个学校成绩簿数据库.我有2张桌子:班级和老师.我有一个问题.老师需要成为班级的形式大师.我应该如何建立这种关系?

变体1: Class将具有teacherId属性.

变体2: 教师将拥有classId属性.

什么变体是对的?

Dmi*_*kin 7

一般来说,有三种关系是可能的:

一到多

  • 如果一个班级可以有很多老师,但是一个老师只能教一个班级,那么就把ClassID教师表放上.

许多一对多

  • 如果一个类可以有很多老师,一个老师可以教很多类,然后进行第3次表,TeacherClassLink并把两者ClassIDTeacherID在里面,以及标识列一样TeacherClassID-按照意见,这就是所谓的cross reference table,虽然我总是非正式地称他们为链接表.

一比一

  • 如果每个教师只能教一个班级,并且每个班级只能有一个教师,那么你可以在两个班级中制作TeacherIDClassID保持相同的价值.

在你的例子中,

Variant1是一对多的关系,每个班级只能有一个教师,但每个教师可以有很多班级.

Variant2是一对多的关系,每个班级可以有多个教师,但每个教师只能有一个班级.

根据应用程序的业务需求,您应该决定选择哪个选项.