我需要连接两张桌子:discipline
和class
它将是N:N关系,因此我将创建一个新表class_discipline
。
我的数据透视表class_discipline
可能包含的字段多于两个表中的Ids
吗?这是一个好习惯吗?
如果是的话,我应该遵循什么样的规则来做这样的事情?
让我解释一下情况:我将从excel文件导入一些数据,我无法更改此文件的数据(我的大学提供)。
此文件的某些数据既不适合discipline
或class
表。所以我想我应该插入这个"额外数据"进入数据透视表。
答案 0 :(得分:1)
您的表格class_discipline
可以包含任意数量的列。
通常,该联结表中的任何列都表示关系的属性。在这种情况下,如果class
ad discipline
之间的关系需要任何规范,那么请使用更多列。
示例:
假设您有表students
和courses
。要定义在哪个课程中注册的人,您将创建仅包含student_course
和student_id
的{{1}}表格。但是,如果您想知道学生注册的时间,您需要在某处保存此信息(它不是course_id
或student
的属性)。这是将新列添加到course
表中的时间。
好的或坏的做法?
通常,在联结表中使用关系属性的其他列是一种很好的做法。但是,如果删除关系,则需要记住丢失列值。
补充意见:
student_course
关系是类的字段。一旦你需要更多的关系属性,你需要有一个单独的类。