繁体   English   中英

在ER图中,我如何知道何时使用一个或多个?

[英]In an ER Diagram, how do I know when you use one or many?

我试图了解ER图中的基数,从访问城市的访客的简单示例开始。 考虑到这一点,你可以让许多游客访问许多城市,所以我绘制了如图所示的ER图。 访问者是具有名称等属性的实体,访问权限是与VisitorID和CityID作为主键的关系,其他属性如日期,城市是实体,具有国家等属性。 这意味着0到很多游客可以访问0到很多城市。 这是否意味着在具有此ER图的数据库中,我会有三个表? 一个用于访客,一个用于城市,一个用于VisitCity? 我是否正确理解了基数?

ER图

对,那是正确的。 您的图纸显示0到多个访客可以访问0到多个城市。 所以在这种情况下你是对的。 如你所说,你已经命名了你的中间访问城市。

但是,假设您需要有一个数据库,访问者只能访问1个城市。 你会有一对多的关系。 这意味着您不需要使用中间表。 所以你最终只会得到2张桌子。

仅仅因为像“许多游客可以访问许多城市”这样的逻辑并不是真的。 要求是制定这些规则的原因(由客户指定的项目说明他/她需要什么。或者如果你还在学校,这将是分配给你的论文)。 因此,在创建数据库时,您必须非常仔细地听取/阅读要求,以确定何时使用什么。 但是从阅读你所说的话我认为你正走在正确的轨道上:)

是的,您正确描述了关系。 N:M基数需要第三张表。

访问也可以包含其他信息。 例如,由于访问者不能同时在两个地方,因此可能存在相关的时间段。

访客可以与城市建立另一种关系 - 例如,具有不同基数的born_in ,即N:1 ,意味着许多人出生在同一个城市(但每个人只出生在一个城市!)为此, born_in将属于游客。

是的,这是完全正确的。

如果您希望将数据库保持在1NF,那么每当您面对N x N基数时,必须使用两个实体的密钥创建新表。

关于规范化的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM