这个ER图是否正确?

时间:2016-01-05 14:18:45

标签: relational-database entity-relationship-model

我正在尝试创建一个满足以下要求的实体关系图:

  

•每位客户都有姓名,永久地址和社会保障   数。

     

•每个客户可以拥有多个电话号码,并且相同   电话号码可能由多个客户共享。

     

•客户可以   拥有多个帐户,但每个帐户由一个客户拥有。   •每个帐户都有一个帐号,一个类型(如保存,   检查等)和余额

     

•银行发出账户对账单   对于每个帐户,每月将其邮寄给其帐户所有者。如   时间继续,同一个帐户会有多个陈述。

     

•每个声明都有一个发布日期和一个声明ID。一切   同一帐户的语句具有不同的语句ID,但有两个   不同的帐户可以使用相同的语句ID。   例如,帐户A可能具有带ID的语句   '123',而帐户B有另一个具有相同ID'123'的陈述。

我已经实现了这个:

enter image description here

我有几个问题:

  1. 如果有任何关系,可以使用Min-Max表示法吗,或者只是在描述中有指示时?

  2. 我的多对多关系是否正确描绘在这里?

  3. 我可以正确描绘帐户与帐户对帐单与StatementID之间的关系吗?

  4. 根据我的假设,帐户对帐单是否真的是一个弱实体,并且Has真的是一个依赖于Statement ID的弱关系? issue-date是弱键吗?

2 个答案:

答案 0 :(得分:1)

Q1。 是。它们可用于任何关系。如果描述缺少该信息,则并不意味着信息不存在。

Q2和Q3以及Q4。 Phone Number应该是多值属性而不是实体。 Statement Id应该是Account Statement的弱键,而不是实体。当您进行上述更改时,您会发现Account Statement取决于Account应该是这样。

答案 1 :(得分:0)

  1. 这种符号对我来说有点奇怪,因为我习惯将数字放在它们所应用的边缘附近(与N-1关系不同的是1-N关系)。就个人而言,我喜欢总是在关系中指出基数。
  2. 我有以下评论:
    • 客户可以拥有多个帐户,因此关系的基数为(1,N)。
    • 帐户可以生成多个帐户对帐单,因此关系为(1,N)。
  3. 我认为您可以将语句ID作为AccountStatement的属性(以及作为"弱键"),并使用帐号作为复合键的其他组件(因为我看到它,AccountStatement有一个复合键,由语句ID和帐号组成。

  4. 我认为AccountStatement实际上是一个弱实体。在我在3中所说的内容中,我不会将发布日期视为关键(尽管帐号和发布日期可能是复合候选键),我会删除Has关系和StatementID实体,移动AccountStatement属性的语句ID。

  5. 希望它有所帮助!