Sql 关系数据库:重复键有什么问题吗?

Sql 关系数据库:重复键有什么问题吗?,sql,database,data-modeling,Sql,Database,Data Modeling,我有一张这样的桌子: ID Prerequisites BCOR100 None BCOR150 BCOR110 BCOR150 BCOR220 BCOR200 None BCOR210 BCOR200 BCOR210 BCOR120 ID先决条件 BCOR100无 BCOR150 BCOR110 BCOR150 BCOR220 BCOR200无 BCOR210 BCOR200 BCOR210 BCOR120 正如您所注意到的,键BCOR150和BCOR210是重复的,这与数据建模

我有一张这样的桌子:

ID Prerequisites BCOR100 None BCOR150 BCOR110 BCOR150 BCOR220 BCOR200 None BCOR210 BCOR200 BCOR210 BCOR120 ID先决条件 BCOR100无 BCOR150 BCOR110 BCOR150 BCOR220 BCOR200无 BCOR210 BCOR200 BCOR210 BCOR120 正如您所注意到的,键BCOR150和BCOR210是重复的,这与数据建模原则不一致。我是这个领域的新手,刚刚学习了数据规范化。非常感谢您提供任何额外的提示和信息。

除了名为
id
的列之外,您的数据结构没有任何先验错误

您似乎已经实现了一个连接/关联表。每行定义一个
id
的先决条件

因为
id
是一个相当模糊的术语,我建议给它一个更容易理解的定义,比如
CourseId
。事实上,作为一般规则,我给我的表命名为复数(
courses
),主键是单数,附加了
id
courseid
)。

如果在表中的行之间重复该值,而它可能是复合键的一部分,根据定义,它不是键


键唯一地标识所涉及的行(实体)。

这取决于。如果您的目的是让行的唯一标识符同时包含这两个字段,那么就可以了,因为该集中没有两个字段出现两次。这还取决于此表是否包含定义ID列标识的对象的任何其他属性的数据。如果答案是肯定的,则将该数据集放入自己的表中,在自己的表中定义ID对象,并从新表中引用该表。b或200:MIS简介(3学分)