我有一个问题,指出一组服务器通过一组数据线发送日常数据。每个服务器都有一个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,这与我的另一个解决方案得出相同的结论,但以更优雅和直接的方式。
哪个是更好的解决方案?