如何制作弱实体的主键

时间:2018-04-14 08:11:39

标签: database-design foreign-keys primary-key composite-primary-key

我的大学数据库有一个Course实体。 架构如下:

Course(name, department, section, semester, teacher_id, college_id)

它是一个以College为所有者实体的弱实体。 (大学的主键是college_id,它存储为foreign key

我的问题是......如何构建Course的主键?

我的意思是,技术上我可以 / em>复合主键作为其他表中的外键,这将是一个巨大的麻烦。或者是吗?有没有其他方法可以实现同样的目标?

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

弱实体必然具有复合主键,并且在关系中引用这些弱实体将涉及复合外键。如果您认为这很令人头疼,您可以引入代理密钥,将其转变为常规实体。

代理键只是一个新的识别属性。例如,您可以添加course_id属性,该属性可以作为Course表中的自动增量列实现。

在引入代理键时,请注意为任何其他候选键声明唯一约束(例如在引入代理键之前您将使用的复合键)。