弱实体从ER模型到关系模型的多值归因

问题描述 投票:0回答:1

我必须将 ER 图映射到关系图,但我很难映射弱实体的多值属性。问题出在我的 ER 图上:

COURSE_MATERIAL
是一个弱实体,由两个多值属性 URL 和 Books 定义。由于
COURSE_MATERIAL
具有总参与约束,因此它将强实体
COURSE
的键作为主键(作为外键)。一般来说,如果强实体具有多值属性,则会创建一个新表,其中包含强实体的键和多值属性(它们被定义为新表的主键)。在这种情况下,多值属性属于一个弱实体,该实体本身没有任何主键。如何创建
URLs
Books
两个表?他们会像平常一样使用
COURSE
键和多值属性吗?
    

database-design erd
1个回答
0
投票
弱实体

的概念:

无法通过其属性
单独

唯一标识的实体。弱实体的存在依赖于另一个称为所有者实体的实体。弱实体的标识符是所有者实体的标识符和弱实体的部分密钥的组合。

因此,这并不意味着弱实体没有主键,而是说主键是复合主键,其中一部分是所属实体的外键。

考虑到这一点,问题就变得简单了:您可以使用多值属性的标准技术,并添加一个(或两个,一个用于书籍,一个用于网址)表,该表具有更复合的主键,该主键由您将为

COURSE_MATERIAL

定义的复合主键,以及允许区分多个值的附加属性。

话虽这么说,如果您将这些附加表显示为图表中的附加弱实体,您会发现它看起来比必要的更复杂:如果 

COURSE_MATERIAL

仅具有这些多值属性并且这些属性是独立的彼此之间,您可以直接创建

COURSE_MATERIAL
与两个弱实体
COURSE
URL
的两个关系,保持复合主键不那么复杂(只有两个组件,而不是两个和三个)。
    

© www.soinside.com 2019 - 2024. All rights reserved.