【发布时间】:2016-07-15 15:34:09
【问题描述】:
我有一个使用 2 个外键字段和一个日期字段的表。 让一个表使用 3 个或更多字段作为主键是否很常见?这样做有什么缺点吗?
--
我的 3 个表是员工、培训和 emp_training。雇员表保存雇员数据。培训表可容纳不同的培训课程。我正在将 emp_training 表设计为字段 EmployeeID (FK)、TrainingID (FK)、OnDate。
一个员工可以参加多个培训课程,并且可以多次参加同一培训课程。但他们不能在同一天多次参加同一培训课程。 哪个更好实施:
选项 A - 将所有 3 个字段设为主键
选项 B - 添加自动编号 PK 字段,并使用查询查找任何潜在的重复项。
我在使用 2 个字段作为主键之前创建了很多表,但从来没有使用 3 个,所以我很好奇继续使用选项 A 是否有任何缺点
【问题讨论】:
-
那里,我修改了你的标题。我想这就是你的意思。
-
还有一点(除了下面的答案):您的但他们不能在同一天多次参加同一培训课程是一个反对PK:这不是绝对的规则,只是一种业务逻辑。如果有一种情况,同一门课一天可以上两次,你会怎么做?那你会怎么做?
标签: mysql sql-server database ms-access