如何为弱实体创建主键
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.
中实现为自动增量列
引入代理键时,注意为任何其他候选键(例如在引入代理键之前使用的复合键)声明唯一约束。
我的大学数据库有一个 Course
实体。
架构如下:
Course(name, department, section, semester, teacher_id, college_id)
它是一个弱实体,College
是它的所有者实体。 (大学的主键是 college_id
,存储为 foreign key
)
我的问题是...如何形成 Course
的主键?
我的意思是,从技术上讲,我 可以 从 所有 Course
的属性中创建一个复合主键,但是如果我必须引用 this 复合主键作为其他 table 中的外键,这将是一个巨大的麻烦。或者会吗?有没有其他方法可以达到同样的效果?
感谢任何帮助。提前致谢。
弱实体必然具有复合主键,在关系中引用这些弱实体将涉及复合外键。如果你觉得这很头疼,你可以引入一个代理键,它将把它变成一个常规实体。
代理键只是一个新的标识属性。例如,您可以添加一个 course_id
属性,该属性可以在 Course
table.
引入代理键时,注意为任何其他候选键(例如在引入代理键之前使用的复合键)声明唯一约束。