如何将其放入 E/R 图中?

How to put this in a E/R diagram?

有一个简单的问题,但我想我想多了。我需要从中制作一个 E/R 图:

Substantial fees are due every calendar year. Fee payments must be made via a bank transfer, mentioning the member number and the membership year it applies to. The database should store the date of payment.

我忽略了日历年,因为我认为它与 E/R 图无关。我有一个名为 "Members" 的实体,我喜欢通过 *"payed via the relationship (diamond symbol) a bank transfer"*.

"Fee"

现在,我的问题是:"member number""membership" 应该是 "fee" 实体还是 "member" 实体的一部分?或两者?因为我想在 "fee" 中添加一个新的 relationship 并命名为 "consists of" 然后是 link "member number" 和 "membership",但我不知道这样好不好。

最后一句怎么办? "The database should store the date of payment."?我可以忽略它吗?

根据你的描述我得到:

  • 您有实体集 MembersPayments
  • Membersmember_number
  • 标识
  • Payments 具有属性 dateamountmembership_year

显然,我们还需要:

  • Payments 有一个属性 amount

我们如何识别 Payments?在我看来,所列属性的组合都不是唯一标识。一个 Member 可以 在同一日期、相同的会员年、相同的金额制作两个相同的 Payments,例如如果一开始不小心只付了一半的年费,然后再付一次改正。

让我们介绍一个代理键:

  • Paymentspayment_id
  • 标识

我们还需要两个实体集之间的关系:

  • 每个 Payment 都与一个 Member
  • 关联
  • 每个Member可以制作多个Payments

我们可以将此信息放入 ER 图中:

为了导出table图,Chen的原始方法将每个实体关系(实体键和属性)和关系关系(关系键(即相关实体键)和关系属性)实现为单独的tables:

但是,通常的做法是使用相同的主键对 table 进行非规范化:

我推荐你研究陈的论文The Entity-Relationship Model - Toward a Unified View of Data。 Codd 的论文 A Relational Model of Data for Large Shared Databanks 提供了有价值的背景。