首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的实体关系图是否反映了相关的业务规则?

我的实体关系图是否反映了相关的业务规则?
EN

Database Administration用户
提问于 2017-12-13 09:50:41
回答 2查看 3.3K关注 0票数 3

我对数据库设计很陌生,我需要一些评论、反馈、建议、建议,等等:( a)一些业务规则,( b)我为表示它们而开发的实体关系图,以及( c)它们是否“匹配”。

业务规则

有关的业务规则如下:

  1. 用户可以对多个业务进行评级。
  2. 一家企业可以归入多个类别。
  3. 用户可以评论多个业务。
  4. 企业可以有零到多的评级。
  5. 企业可以有零到多的评论。
  6. 一家企业只能设在一个城市,而且只有一个城市。
  7. 一个城市可以有多种业务
  8. 一个类别可以有多个业务。
  9. 用户可以为企业提供一个或多个签入。
  10. 企业可以有零到多个签入。

我的实体关系图

我在下面的图表中表达了这些观点:

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-12-13 10:13:13

您需要一个城市之间的表->业务,以及类别和业务之间的表。

这样,由于城市可以有很多业务,将所有数据保存在一个表中,你就打破了第二种正常形式,这意味着数据组不应该在一个表中重复。这意味着,例如,如果您拥有多个业务的纽约市,您将拥有相同的城市名称但不同的城市ID的2+记录。

因此,我将保留只有城市元数据的表城市,并添加一个新的表CityBusiness,它具有自己的标识id、c_id和b_id或,因为城市只能有一家企业(一个企业是否有可能向另一个城市扩展和开放其办事处?)您可以将主键定义为b_id和c_id的组合。

同样的规则也适用于类别。一个带有ca_id和b_id的新表b_id,以及一个包含与类别本身相关的元数据的分类表。

票数 3
EN

Database Administration用户

发布于 2017-12-13 16:30:54

首先,我完全同意S4V1N在Category-Business链接上的观点--您需要一个表,因为每个企业都可以有许多类别,而且每个类别都可以绑定到许多业务。

但是,正如目前的规则所述,我认为您不需要在CityBusiness之间找到一个表。我想你把City的布局搞错了。

目前,每个企业必须在一个和唯一的一个城市,每个城市可以是多个企业的家园。为此,City表不应该有B_ID列,因为城市不与任何企业绑定。(我也不认为它有一个U_ID列的理由,因为UserCity之间没有建立任何关系。我怀疑这是一个剪切粘贴的问题。)然而,Business应该为它所在的城市设置一个CI_ID

而且--按照我读取图表的方式,看起来每个用户至少必须有一个CommentRatingCheckin。规则明确地指示每个用户“一个或多个”签入,因此这似乎是正确的。然而,在我看来,用户不需要有任何评论或评级--那么这两个链接不应该链接到"0或更多“连接器吗?

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/192996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档