一个数据透视表 table 可能有比 IDs 更多的字段

A pivot table may have more fields than just Ids

我有两个 table 需要连接:disciplineclass
这将是一个 N:N 关系,所以我将创建一个新的 table class_discipline

我的主元 table class_discipline 是否可能比两个 table 的 Ids 有更多的字段?这是一个好习惯吗?
如果是,我应该遵循某种规则来做这样的事情吗?

让我解释一下情况:我将从 excel 文件中导入一些数据,我无法更改此文件的数据(我的大学提供)。
而且这个文件有一些数据不适合 disciplineclass tables。所以我想我应该将这个 "extra data" 插入枢轴 table.

您的 table class_discipline 可以有任意多的列。

通常,该联结 table 中的任何列都代表关系的一个属性。在这种情况下,如果 classdiscipline 之间的关系需要任何规范,那么可以,使用更多列。

示例:

假设您有 table 个 studentscourses。为了定义谁注册了哪个课程,您将创建仅包含 student_idcourse_idstudent_course table。但是,如果您想知道学生何时注册,则需要将此信息保存在某个地方(它不是 studentcourse 的属性)。这是将新列添加到 student_course table.

的时间

好的做法还是坏的做法?

在联结 table 中为关系的属性使用附加列通常是一种很好的做法。但是,您需要记住,如果删除关系,您将丢失列值。

附加评论:

  • 如果您在应用程序中或通过 ORM 使用此类结构,请注意普通 N:N 关系是 class 的一个字段。一旦你需要关系的更多属性,你需要有一个单独的 class.