问题 问答题

[说明]

某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。

1.对于新客户及车辆,汽车维修管理系统首先登记客户信息,包括:客户编号、客户名称、客户性质(个人、单位)、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:车牌号、车型、颜色、车辆类别等信息。一个客户至少有一台车。客户及车辆信息如表2-1所示。

2.记录维修车辆的故障信息。包括:维修类型(普通、加急)、作业分类(大、中、小修)、结算方式(自付、三包、索赔)等信息。维修厂的员工分为:维修员和业务员。车辆维修首先委托给业务员。业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书。如表2-2所示。

3.维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表2-3所示。

4.客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。

根据需求阶段收集的信息,设计的实体联系图(见图2-1)和关系模式(不完整)如下所示。图2-1中业务员和维修工是员工的子实体。

[逻辑结构设计]

客户( (5) ,折扣率,联系人,联系电话)

车辆(车牌号,客户编号,车型,颜色,车辆类别)

委托书( (6) ,维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用)

维修项目(维修项目编号,维修项目,单价)

派工单( (7) ,工时)

员工( (8) ,工种,员工类型,级别)

根据问题描述,写出客户、委托书和派工单这三个关系的主键。

答案

参考答案:

客户:客户编号

委托书:委托书编号

派工单:委托书编号,维修项目编号,维修工编号

解析:

本题考查数据库设计,设计考点有:数据库的概念结构设计和逻辑结构设计。

[问题1]由维修委托书的故障描述,维修类型、作业分类,可知,一台车可能有多个故障,对应多个维修委托书,所以(1)空填写:*;题目中“维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单”,很明显,一份委托书包含了一个或多个维修项目,而每个维修项目可以由多个维修工来完成,每一个维修工又可以完成多个维修项目,所以(2)空填写:1,(3)、(4)填写:*。

[问题2]需要补充车辆和客户之间以及委托书和业务员之间的关系。由题目“一个客户至少拥有一台车”可知,客户和车辆之间是“拥有”关系,且是一对多的关系;在由题目中“业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书”可知,业务员与委托书之间是“委托”关系,且一名业务员可以受理多份委托书,而一份委托书由一名业务员来生成。

[问题3]本题又是补充逻辑结构设计题,几乎每年都考,这类题目只要仔细看需求分析结果或者仔细观察题目中已知的表,很容易就能做出,关键是需要细心,不要漏掉什么属性。根据客户和车辆信息表可知,客户关系应包括客户编号、客户名称、客户性质、折扣率、联系人等属性,主键显然为客户编号;而车辆关系应包括车牌号、客户编号、车型、颜色、车辆类别等属性,主键为车牌号。根据维修委托书表可知委托书应包括委托书编号、车牌号、客户编号、业务员编号、维修类型等属性,其主键为委托书编号。根据维修派工单可知,派工单应包括委托书编号、维修项目编号、维修工编号、工时等属性,主键是委托书编号、维修项目编号和维修员编号。根据实体联系图知,员工包括业务员和维修工,他们共有的属性是员工编号、员工姓名、工种、员工类型、级别等属性,主键为员工编号。

[问题4]参考问题3的分析。

单项选择题 A2型题
单项选择题