0

下面我有两个表,客户和货币。

场景:每个客户必须为其所有交易定义一种货币。我放置了一个 currency_id 列,将货币与客户相关联。以下是我脑海中出现的一些问题。Mybe这是一个愚蠢的问题。但我想清除自己。

  1. 客户观点:一位客户使用一种货币 在此处输入图像描述

  2. 从货币查看:一种货币可以有 0 个或多个客户。 在此处输入图像描述

这里的问题。在这种情况下,我们应该如何看待问题?我们应该从客户 (1) 或货币 (2) 来看。任何人都可以解释我这个??

编辑:我的问题是关于设计 ERD。

4

4 回答 4

1

我们应该从客户 (1) 或货币 (2) 来看。

您可以从客户的角度或货币的角度查看数据。

你自己说的。您可以查看特定客户的货币,也可以计算特定货币的客户数量。

通过关系数据库没有“顺序”。您设计关系表,以便它们提供您需要的信息。

于 2012-11-19T14:28:36.300 回答
0

就 ERD 而言,2 是正确的。您在 Customer 中有一个外键引用 Currency 的主键,因此您具有从 Customer 到 Currency 的多对一关系。图 2 正确地用图表显示了这种关系。

于 2012-11-19T14:28:02.900 回答
0

您不会从任何一方查看关系。您在这里拥有的是与一种货币相关的零对多客户,可以以图形方式或以多种不同方式表达为文本。例如,“0..*:1”。

于 2012-11-19T14:28:18.950 回答
0

(在支持@Gilbert 的回复并阅读随后的讨论后将其加入。)

两个表之间的关系是双向的:表 X 与表 Y 相关,表 Y 与表 X 相关。对于您的情况,正如您所说:

  • 一位客户使用一种货币
  • 一种货币可以有 0 个或多个客户

两种语言描述都是正确的。

关于 ERD 表示,您的第二种情况最能代表这一点。除非你是一名学者,否则不要被代表性细节所困扰,那里有许多非常相似的符号。只要它显示“一对零或更多”,你就很好。

至于实现,我想你已经明白了:父表有主键 (CurrencyId),子表有自己的主键 (CustomerID) 和与父表相关的外键 (CurrencyID)。

于 2012-11-19T15:05:50.007 回答