1

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

正如您在图中看到的,对于订阅者、列表和订阅者列表的关系。我正在尝试实现..

一个订阅者可以是许多列表的一部分,但一个列表可以包含许多订阅者。

这张图在这个问题上有意义吗?

谢谢

在此处输入图像描述

4

1 回答 1

2

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

如果您从整体上询问 ERD,很难说它是否是您所需要的。关于有很多列表的订阅者和有很多订阅者的列表,你这样做的方式就是要走的路。

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

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

在这篇文章“多对多关系”标题下的 1/3 处可以找到一个很好的简短和中肯的解释:http: //www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx

于 2012-07-19T18:38:52.600 回答