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

发布于 2017-12-13 10:13:13
您需要一个城市之间的表->业务,以及类别和业务之间的表。
这样,由于城市可以有很多业务,将所有数据保存在一个表中,你就打破了第二种正常形式,这意味着数据组不应该在一个表中重复。这意味着,例如,如果您拥有多个业务的纽约市,您将拥有相同的城市名称但不同的城市ID的2+记录。
因此,我将保留只有城市元数据的表城市,并添加一个新的表CityBusiness,它具有自己的标识id、c_id和b_id或,因为城市只能有一家企业(一个企业是否有可能向另一个城市扩展和开放其办事处?)您可以将主键定义为b_id和c_id的组合。
同样的规则也适用于类别。一个带有ca_id和b_id的新表b_id,以及一个包含与类别本身相关的元数据的分类表。
发布于 2017-12-13 16:30:54
首先,我完全同意S4V1N在Category-Business链接上的观点--您需要一个表,因为每个企业都可以有许多类别,而且每个类别都可以绑定到许多业务。
但是,正如目前的规则所述,我认为您不需要在City和Business之间找到一个表。我想你把City的布局搞错了。
目前,每个企业必须在一个和唯一的一个城市,每个城市可以是多个企业的家园。为此,City表不应该有B_ID列,因为城市不与任何企业绑定。(我也不认为它有一个U_ID列的理由,因为User和City之间没有建立任何关系。我怀疑这是一个剪切粘贴的问题。)然而,Business应该为它所在的城市设置一个CI_ID。
而且--按照我读取图表的方式,看起来每个用户至少必须有一个Comment、Rating和Checkin。规则明确地指示每个用户“一个或多个”签入,因此这似乎是正确的。然而,在我看来,用户不需要有任何评论或评级--那么这两个链接不应该链接到"0或更多“连接器吗?
https://dba.stackexchange.com/questions/192996
复制相似问题