【发布时间】:2018-02-06 00:12:40
【问题描述】:
我刚刚开始了数据库设计课程,并得到了一项作业,其中一项任务是根据以下 pdf 列出虚构医院的所有实体类型:http://docdro.id/mbzdtUg。
我正在努力弄清楚什么应该是实体类型,什么不应该。我给你一个基本的例子:
“员工”显然是一个实体类型,但每个员工都必须有关于他们的资格和工作经验的详细信息。由于工作人员可以拥有多种资格和多种工作经验,因此这些不能成为属性……对吗?那么“员工资格”和“员工工作经历”应该是一个实体类型吗?
根据我读过的实体定义,实体应该是独立的并且代表实际存在的对象。一个实体完全独立意味着什么?如果实体类型“员工”不存在,则“员工资格”和“员工工作经验”实体类型将不存在。因此它们不是独立的(???),它们也不代表存在的东西(物理对象)。那么如果不是实体类型,它们是什么?例如,“约会”应该是实体类型吗?我真的很困惑......感谢任何帮助。
谢谢!
编辑:应该提到这应该遵循实体关系模型 (ER)
编辑 2:示例 2:患者可以是门诊患者或住院患者。我应该将它们制成 2 个实体类型还是仅 1 个(患者)?
【问题讨论】:
-
存在学位等资格,独立于持有该资格的人。您必须区分人员、资格和人员与资格关系的链接表。
-
但是如果我让“资格”完全独立于“员工”,我怎么知道哪个资格属于哪个员工? “资格”表必须具有某种外键属性(例如“StaffID”)才能知道要将其链接到哪个员工。
-
@Schytheron 我试图用我帖子中的示例架构图片来回答这个问题。您需要按照建议使用连接表来创建 1:M 和 M:1 链接
-
根据 Vidmantas 的评论,我指定了一个“链接表”,即 StaffID、QualificationID 的关系——这种中间链接表很常见。
-
好的,感谢您的帮助!