【问题标题】:Composite Key becomes not unique复合键变得不唯一
【发布时间】:2016-03-01 05:55:19
【问题描述】:

您将如何修复现有的年份数据库,该数据库使用来自字段学校和年份的复合键不再代表唯一行?其中一所学校正在发行一年两次的年鉴。我应该只生成一个 id 并将其用作主键吗?

【问题讨论】:

  • 听起来你需要一个semesterterm 字段。您可以只创建一个代理键,但在报告时,如果没有有意义的术语/学期字段,您将没有一个好的业务规则来知道要引用哪些记录。
  • 哇哦,说的有道理,就形成一个3个字段的组合键?
  • 没错,键中的另一个字段,但让您可以灵活地处理此问题,而不会破坏您的大脑以尝试稍后使用数据。
  • 听起来不错,如何将评论标记为答案?
  • 我想我会回答的。

标签: sql primary-key composite-key


【解决方案1】:

我建议添加一个semesterterm 字段。您可以只创建一个代理键,但向复合键添加另一个字段可以让您灵活地巧妙地处理季度/学期。

【讨论】:

  • 后续问题,添加术语字段和代理键会违反任何正常形式规则吗?
猜你喜欢
  • 2019-06-28
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2018-07-29
  • 2011-01-17
  • 2012-01-27
相关资源
最近更新 更多