这个ERD有意义吗?

时间:2012-07-19 18:30:48

标签: mysql entity-relationship erd

我正在尝试复制一个电子邮件服务提供商,可以存储电子邮件,也可以根据订阅者发送电子邮件。我专注于数据结构atm,但我不禁想到我可能做错了什么。

正如您在图中所示,朝向订阅者,列表和订阅者列表关系。我正试图实现......的情景。

订阅者可以是许多列表的一部分,但列表可以容纳许多订阅者。

这个图表对此事有意义吗?

由于

enter image description here

1 个答案:

答案 0 :(得分:2)

对我来说很好看。因为订阅者和列表之间存在多对多关系,所以需要一个映射表(subscriberlist)来保存关系。

如果你整体询问ERD,很难说这是否是你所需要的。对于拥有许多列表和具有许多订阅者的列表的订阅者而言,您采用的方式是可行的方式。

编辑:我不确定为什么在订阅者表中有一个名为Lists的列。 SubscriberList表应该包含订阅者和列表之间的所有映射,并尝试在其他任何地方复制此数据,这将导致非规范化问题。

EDIT2:我在这些多对多关系中经常想到的经典例子是用户和角色。在几乎任何复杂的Web应用程序中,您都拥有大量用户和多个角色。允许用户拥有多个角色(以及每个角色拥有多个用户)的唯一方法是创建一个映射表,如您在ERD中所示。

关于本文在“多对多关系”标题下的1/3,我们可以找到一个简短而简明的解释:http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx