如何为弱实体创建主键

How to make Primary Key for Weak Entity

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

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

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

我的问题是...如何形成 Course 的主键?

我的意思是,从技术上讲,我 可以 所有 Course 的属性中创建一个复合主键,但是如果我必须引用 this 复合主键作为其他 table 中的外键,这将是一个巨大的麻烦。或者会吗?有没有其他方法可以达到同样的效果?

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

弱实体必然具有复合主键,在关系中引用这些弱实体将涉及复合外键。如果你觉得这很头疼,你可以引入一个代理键,它将把它变成一个常规实体。

代理键只是一个新的标识属性。例如,您可以添加一个 course_id 属性,该属性可以在 Course table.

中实现为自动增量列

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