下面我有两个表,即客户和货币。
场景:每个客户必须为其所有交易定义一种货币。我已经放置了currency_id列,该列将货币与客户相关联。以下是我脑海中出现的一些问题。 Mybe这是一个愚蠢的问题。但我想清楚自己。
从客户查看:一位客户拥有一种货币
从货币查看:一种货币可以有0个或更多客户。
这里的问题。在这种情况下,我们应该如何处理这个问题?我们应该从客户(1)或货币(2)看到。任何人都可以解释我这个??
编辑:我的问题是设计ERD。
答案 0 :(得分:1)
我们应该从客户(1)或货币(2)看到。
您可以从客户的角度或货币的角度查看数据。
你自己说的。您可以查看特定客户的货币,也可以计算特定货币的客户数量。
通过关系数据库没有“顺序”。您可以设计关系表,以便提供所需的信息。
答案 1 :(得分:0)
关于ERD 2的条款是正确的。您在Customer中引用外键,引用Currency的主键,因此您拥有从Customer到Currency的多对一关系。 2以图解方式正确显示此关系。
答案 2 :(得分:0)
您不会从任何一方查看关系。您在这里拥有与一种货币相关的零对多客户,可通过图形方式表达或以多种不同方式表达文本。例如,“0 .. *:1”。
答案 3 :(得分:0)
(在听完@ Gilbert的回复并阅读随后的讨论之后抛弃此内容。)
两个表之间的关系是双向的:表X与表Y相关,表Y与表X相关。对于您的情况,它正如您所说的那样:
两种口头描述都是正确的。
关于ERD表示,您的第二个案例最能代表这一点。除非你是一名学者,否则不要陷入代表性的细枝末节,那里有几十种非常相似的符号。只要它显示“一到零或更多”,你就会很好。
至于实现,我认为你已经得到了这个问题:父表有主键(CurrencyId),子表有自己的主键(CustomerID)和与父表相关的外键(CurrenctyID) 。