我有以下问题:
仅使用二进制关系,为以下描述构造一个实体关系图。包括实体标签,主键字段,关系标签和关系的多重性。
“一家公司经营着几个汽车维修和服务车库,每个车库都有自己的唯一编号(gargNo)。当车主联系车库时,会记录其详细信息并为其指定所有者编号。他们的汽车也在该车库中注册,并且分配了参考号(carNo)。所有者可以拥有一辆或多辆汽车,但是一辆汽车只能在一个车库中注册。将汽车预订到车库中时,将为其制定服务计划。对于一辆特定的汽车来说是独特的(例如,固化刮风刮水器),或者对于许多汽车都可以使用(例如,标准的60000英里服务)任何服务计划都可以包括一个或多个操作(更换机油,拆下机油)保养计划中的每种操作都有唯一的编号(operationNo)。
这是我的答案:
对于所有数据库资深人士来说,这看起来还行吗?
此外,任何其他意见的反馈将不胜感激...
不是家庭作业
编辑-为什么人们继续编辑帖子但不进行更改?
最佳答案
完全基于给定的要求,而不考虑现实中所有可能的复杂情况(例如,所有者将汽车服务从一个车库移到另一个车库时发生的情况):
我会陪伴。只有一个提到过,没有迹象表明我们正在记录多个公司的数据。
车主和车库之间的关系是通过汽车实现的。车主和车库之间没有直接关系。 (考虑到多个车库,确保给定的多辆车所有者在系统中出现一次很难执行)。
汽车和车库之间的关系也许应该“在”处注册。严格的阅读意味着这辆车与车主联系是与车主联系在一起的,而不是随身携带的。
您需要实体ServicePlanType [SPT]。大多数SPT是预先定义的,并且多辆汽车将使用给定的SPT(60,000英里调谐)。如果需要,何时以及根据需要添加其他SPT。可以对“标准”子类型与“临时”子类型进行论证,但我认为它们非常相似(基于“操作”),因此不需要这样做。然后:
服务计划涉及一种汽车,并且涉及一种服务计划类型
服务计划与一种服务计划类型有关
服务计划类型涉及零个或多个服务计划(标准计划列表)
服务计划类型涉及一项或多项操作(必须定义所有操作)
操作可能涉及零个或多个服务计划类型。鉴于需要临时服务计划,可能需要一些最初不属于任何给定服务计划的操作。 (可以根据需要添加它们,这可能是可以接受的。我姐姐的沙鼠在放学回家的路上逃脱了一次,他们不得不拆卸汽车的一部分才能把它拿出来。不收费,也许他们没有在其数据库中“提取沙土鼠”。)(我不是那样做的。)
我不会将服务计划的类型或操作与车库联系起来。据推测,如果公司的一个车库能够做到这一点,那么他们都应该能够做到,甚至是临时的。
您无需将服务计划与车库相关联,因为服务计划所针对的汽车与车库相关。话虽如此,当需要进行物理实施时这样做可能会很好。同样,如果稍后将汽车带入第二个车库,则汽车与车库之间的关系会发生变化,并且如果没有与车库之间的服务计划,您将无法确定谁进行了早期的工作。正确地,我想您想对汽车到汽车的服务计划建模,但是他们特别指出了“汽车对车库”的拼写。提出这些问题,看看企业主怎么说。