【发布时间】:2021-12-10 04:00:21
【问题描述】:
让我试着用一个例子让它变得简单。
我正在创建一个包含 2 个表、学校和学生的数据库
具有 2 列 SchoolID(PK) 和 Location 的学校表 包含 3 列 StudentID(PK)、SchoolID(FK) 和 Grade 的学生表
Student 表将包含所有可以通过外键 SchoolID 识别的学校的学生。 StudentID 列对于所有学校的每个学生都是唯一的。到目前为止很好。
我需要 Student 表中的另一列,该列仅在外键值方面是唯一的。我们称这个ID。我需要此列仅对每个 SchoolID 都是唯一的。因此,如果我过滤掉属于特定 SchoolID 的学生,我不应该得到 2 个具有相同 ID 的学生。
我不确定这是否是一个有效的场景。
【问题讨论】:
-
为什么无效?如果有需要此列的用例,则它是有效的。我真的不明白你在这里问什么。
-
@GertArnold 我需要学生表中的新列仅在具有相同 SchoolID 的其他学生中是唯一的。这有意义吗?
-
你只是在重复你的问题。我可以重复我的答案,为什么不呢?只有你可以决定它是否有意义。
-
@GertArnold 对此感到抱歉。这么说吧,如果我将新的“ID”列设置为主要,它不会让 2 个学生具有相同的值,对吧?所以,我需要一个关键约束,允许 2 名学生具有相同的 'ID' 值,但不允许 2 名具有相同 'SchoolID' 的学生拥有相同的 'ID' 值。
-
只标记您使用的数据库。
标签: sql entity-framework