一个数据透视表 table 可能有比 IDs 更多的字段
A pivot table may have more fields than just Ids
我有两个 table 需要连接:discipline
和 class
。
这将是一个 N:N 关系,所以我将创建一个新的 table class_discipline
。
我的主元 table class_discipline
是否可能比两个 table 的 Ids
有更多的字段?这是一个好习惯吗?
如果是,我应该遵循某种规则来做这样的事情吗?
让我解释一下情况:我将从 excel 文件中导入一些数据,我无法更改此文件的数据(我的大学提供)。
而且这个文件有一些数据不适合 discipline
或 class
tables。所以我想我应该将这个 "extra data" 插入枢轴 table.
您的 table class_discipline
可以有任意多的列。
通常,该联结 table 中的任何列都代表关系的一个属性。在这种情况下,如果 class
和 discipline
之间的关系需要任何规范,那么可以,使用更多列。
示例:
假设您有 table 个 students
和 courses
。为了定义谁注册了哪个课程,您将创建仅包含 student_id
和 course_id
的 student_course
table。但是,如果您想知道学生何时注册,则需要将此信息保存在某个地方(它不是 student
或 course
的属性)。这是将新列添加到 student_course
table.
的时间
好的做法还是坏的做法?
在联结 table 中为关系的属性使用附加列通常是一种很好的做法。但是,您需要记住,如果删除关系,您将丢失列值。
附加评论:
- 如果您在应用程序中或通过 ORM 使用此类结构,请注意普通
N:N
关系是 class 的一个字段。一旦你需要关系的更多属性,你需要有一个单独的 class.
我有两个 table 需要连接:discipline
和 class
。
这将是一个 N:N 关系,所以我将创建一个新的 table class_discipline
。
我的主元 table class_discipline
是否可能比两个 table 的 Ids
有更多的字段?这是一个好习惯吗?
如果是,我应该遵循某种规则来做这样的事情吗?
让我解释一下情况:我将从 excel 文件中导入一些数据,我无法更改此文件的数据(我的大学提供)。
而且这个文件有一些数据不适合 discipline
或 class
tables。所以我想我应该将这个 "extra data" 插入枢轴 table.
您的 table class_discipline
可以有任意多的列。
通常,该联结 table 中的任何列都代表关系的一个属性。在这种情况下,如果 class
和 discipline
之间的关系需要任何规范,那么可以,使用更多列。
示例:
假设您有 table 个 students
和 courses
。为了定义谁注册了哪个课程,您将创建仅包含 student_id
和 course_id
的 student_course
table。但是,如果您想知道学生何时注册,则需要将此信息保存在某个地方(它不是 student
或 course
的属性)。这是将新列添加到 student_course
table.
好的做法还是坏的做法?
在联结 table 中为关系的属性使用附加列通常是一种很好的做法。但是,您需要记住,如果删除关系,您将丢失列值。
附加评论:
- 如果您在应用程序中或通过 ORM 使用此类结构,请注意普通
N:N
关系是 class 的一个字段。一旦你需要关系的更多属性,你需要有一个单独的 class.