弱实体的双二元关系或三元关系

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

我有一个问题,指出一组服务器通过一组数据线发送日常数据。每个服务器都有一个id,每条数据线都有一个id。我提出了几个想法,但我不确定哪个更好。根据我的阅读,当可以用二元关系来完成某些事情时,最好避免三元关系。但就我而言,我想出了以下二元关系

(Server)[serverId]--1--------1..* --(DailyData)[date]--1..*----------1--(DataLine)[dataLineId]

DailyData 对服务器来说较弱,因为许多服务器都会在同一天产生报告。最后,我会得到一个以

(serverId)
作为 PK 的服务器表,一个以两者的组合作为 PK 的 DailyData 表
(serverId, date)
,以及一个以三者的组合作为 PK 的 DataLine 表
(serverId, date, dataLineId)
。这(如果我做得正确的话)似乎有效。

我的另一个想法是使用Server、Date和DataLine之间的三元关系,这样看起来更优雅,并且没有弱实体。关系表就是

(serverId, dataLineId, date)
,他们三个作为PK,这与我的另一个解决方案得出相同的结论,但以更优雅和直接的方式。

哪个是更好的解决方案?

database-design uml relationship
1个回答
0
投票

您在 UML 中描述的关系类型将是一个 关联类:如果没有

DailyData
Server
Dataline
就没有意义。

关联类同时是二元关联(

Server
Dataline
之间的平线)和类(类框,与平线相关,虚线通常与平线正交) .

要在数据库中实现关联类,通常会使用关联表,也称为联接表。既然你谈到“弱”和其他不是 UML 的概念,我想补充一点,在 ERD 中,最接近关联类的是“关联实体”。

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