首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在桥表中定义唯一的关系,使其由数据模型强制执行?

如何在桥表中定义唯一的关系,使其由数据模型强制执行?
EN

Stack Overflow用户
提问于 2011-03-18 19:44:14
回答 2查看 156关注 0票数 0

这是我遇到的面试问题

给定三张表

  • 研究生-研究生名册
  • 荣誉-荣誉
  • -连接研究生与特定荣誉学科

的桥梁桌

问题-- GRADHONS应该如何在数据模型中定义,以便数据模型强制执行这样的约束:一个毕业生可能只有一个荣誉科目?

面试官不太喜欢我的建议

在表GRADHONS

  • Change中,
  • 只使用研究生键作为PK,数据模型和参考荣誉作为研究生表的一部分。

我的问题与最初的面试问题相同--您将如何在桥表中定义唯一的-1-1关系,以便由数据模型强制执行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-18 19:48:21

你的建议听起来都是合理的。如果您希望在GRADHONS中有一个单独的列来引用毕业生,那么让GRADHONS有一个外键引用来毕业,并使该列独一无二。因此,任何毕业生都只能在GRADHONS中排一排。

票数 0
EN

Stack Overflow用户

发布于 2011-03-18 20:25:06

最简单的方法是在连接表中的GRADHONS (一个由GraduateID和HonoursID字段组成的主键)上创建一个复合主键,该表由研究生和荣誉FKs组成。

如果要使用LINQ或其他ORM解决方案(如ActiveRecord in RoR ),请注意,它们倾向于不喜欢这些类型的PKeys。在这种情况下,最好在联接表GRADHONS上创建一个PK自动增量,然后在两个FKey字段上创建一个唯一的索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5357062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档