4

我有以下问题:

仅使用二元关系,为以下描述构建实体关系图。包括实体标签、主键字段、关系标签和关系的多重性。

“一家公司经营着多个汽车维修和服务车库,每个车库都有自己的唯一编号 (gargNo)。当车主联系车库时,他们的详细信息会被记录下来,并分配给他们一个 ownerNo。他们的汽车也在该车库注册,并且是分配参考号(carNo)。车主可以拥有一辆或多辆汽车,但一辆汽车只能在一个车库注册。当汽车预订到车库时,会为其制定服务计划。服务计划可以对特定的汽车来说是独一无二的(例如,治疗吱吱作响的挡风玻璃雨刷器),或者它可能是用于许多汽车的一种(例如,标准的 60000 英里服务)。任何服务计划都可以包含一个或多个操作(更换机油、拆卸刮水器电机等)。服务计划中的每种操作类型都有一个唯一编号 (operationNo)。

这是我的回答:

在此处输入图像描述

对于所有数据库老手来说,这对您来说还可以吗?

任何其他评论反馈也将不胜感激......

不是家庭作业

编辑 - 为什么人们继续编辑帖子但不做任何更改?

4

2 回答 2

2

完全基于给定的要求,不考虑现实世界中所有可能的复杂情况(例如,当车主将他们的汽车服务从一个车库转移到另一个车库时会发生什么):

我会离开公司。只有一个曾经提到过,没有迹象表明我们正在为多家公司记录数据。

车主和车库之间的关系是通过汽车。车主和车库之间没有直接关系。(给定多个车库,确保给定的多车主在系统中出现一次将很难执行。)

汽车和车库之间的关系也许应该是“注册在”。严格的阅读意味着汽车在车主联系时与车库相关联,而不是在维修时。

您需要实体ServicePlanType [SPT]。大多数 SPT 是预定义的,多辆汽车将使用给定的 SPT(60,000 英里调整)。如果需要,何时需要添加额外的 SPT。可以对“标准”与“临时”子类型进行争论,但我认为它们非常相似(基于操作),因此不需要这样做。然后:

  • 服务计划与一辆车和一种服务计划类型有关
  • 服务计划涉及一种服务计划类型
  • 服务计划类型涉及零个或多个服务计划(标准计划列表)
  • 服务计划类型与一项或多项操作相关(必须定义所有操作)

操作可能涉及零个或多个服务计划类型。鉴于需要特别服务计划,可能需要最初不属于任何给定服务计划的操作。(那或者根据需要添加,这可能是可以接受的。我姐姐的沙鼠在放学回家的路上有一次逃跑了,他们不得不将汽车的一部分拆开才能把它弄出来。不收费,也许他们没有在他们的数据库中“提取沙鼠”。)(我不是在编造这个。)

我不会将服务计划类型或操作与车库联系起来。假设公司的一个车库可以做到,他们应该都可以做到,即使是临时的。

您不需要将服务计划与车库相关联,因为服务计划所针对的汽车与车库相关。话虽如此,在物理实施时这样做可能会很好。此外,如果稍后将汽车带入第二个车库,则汽车与车库的关系会发生变化,并且如果没有服务计划与车库的关系,您将无法追踪之前的工作是谁进行的。正确地,我认为您希望将 owenr 模型化为汽车到车库的服务计划,但他们特别拼写了“汽车到车库”。提出这些问题,看看企业主怎么说。

于 2011-04-25T14:07:19.813 回答
1

根据问题陈述,我想出了以下内容:

在此处输入图像描述

为了简单起见,我使用了 Address、OwnerDetails 等通用字段。

编辑:服务计划和操作之间的多对多解释:

“换油”操作是“30K 维护”、“60K 维护”和“换油”服务计划的一部分。

当然,“30K 维护”和“60K 维护”的服务计划有多个操作(更换机油、加注制动液、检查轮胎压力、平衡和旋转轮胎)。

因此,Service Plan 和 Operation 之间的关系是多对多的关系。

这个结构是一个模板,然后可以应用于 VehicleService 实例。

于 2011-04-25T22:59:11.633 回答