阅读下列说明,根据要求回答下列问题。
[说明]
某医院的门诊管理系统实现了为患者提供挂号、处方药品收费的功能。具体的需求及设计如下。
(1)医院医师具有编号、姓名、科室、职称、出诊类型和出诊费用,其中出诊类型分为专家门诊和普通门诊,与医师职称无关:各个医师可以具有不同的出诊费用,与职称和出诊类型无关。
(2)患者首先在门诊挂号处挂号,选择科室和医师,根据选择的医师缴纳挂号费(医师出诊费)。收银员为患者生成挂号单,如表1所示,其中,就诊类型为医师的出诊类型。
表1 ××医院门诊挂号单 收银员:13011 时间:2007年2月1日08:58 | |||||
就诊号 | 姓名 | 科室 | 医师 | 就诊类型 | 挂号费 |
20070205015 | 叶萌 | 内科 | 杨玉明 | 专家门诊 | 15元 |
(3)患者在医师处就诊后,凭借挂号单和医师手写处方到门诊药房交费买药。收银员根据就诊号和医师处方中开列的药品信息,查询药品库(见表2)并生成门诊处方单(见表3)。
表2 药品库 | |||||||
药品编码 | 药品名称 | 类型 | 库存 | 货架编号 | 单位 | 规格 | 单价 |
12007 | 牛蒡子 | 中药 | 51590 | B140l | G | 炒 | 0.0340 |
11090 | 百部 | 中药 | 36950 | B1523 | G | 片 | 0.0313 |
表3 ××医院门诊处方单 时间:2007年2月1日10:31 | |||||
就诊号 | 20070205015 | 病人姓名 | 叶萌 | 医师姓名 | 杨玉明 |
金额总计 | 0.65 | 项目总计 | 2 | 收银员 | 21081 |
药品编码 | 药品名称 | 数量 | 单位 | 单价 | 金额(元) |
12007 | 牛蒡子 | 10 | G | 0.0340 | 0.34 |
11090 | 百部 | 10 | G | 0.0313 | 0.31 |
(4)由于药品价格会发生变化,因此门诊管理系统必须记录处方单上药品的单价。
[概念模型设计]
根据需求阶段收集的信息,设计的实体联系图(不完整)如图所示。
[逻辑结构设计]
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)。
挂号单(就诊号,病患姓名,医师编号,时间,______)
收银员(编号,姓名,级别)
医师(编号,姓名,科室,职称,出诊类型,出诊费用)
门诊处方(______,收银员,时间)
处方明细(就诊号,______)
药品库(药品编码,药品名称,______)
根据实体联系图,填写挂号单、门诊处方、处方明细和药品库关系模式中的空白处,并指出挂号单、门诊处方和处方明细关系模式的主键。
参考答案:
收银员编号,或收银员
就诊号
药品编号,数量,单价
类型,库存,货架编号,单位,规格,单价
挂号单主键:就诊号
门诊处方主键:就诊号
处方明细主键:就诊号、药品编号
解析:
依题意,对于“挂号单”关系模式,根据表1的数据,并结合[问题2]的分析结果,由于“挂号单”实体与“收银员”实体之间存在联系“生成”,在挂号单中需记录对应的收银员,因此,“挂号单”关系模式需补充属性“收银员编号(或收银员)”。挂号单的主键“就诊号”,外键是“医师编号”和“收银员编号”。
同理,对于“门诊处方”关系模式,根据表3的数据,并结合[问题2]的分析结果,“挂号单”实体与“门诊处方”实体之间存在联系“关联”,在门诊处方单中需记录挂号单中的就诊号,因此,“门诊处方”关系模式需补充属性“就诊号”。由于“挂号单”实体与“门诊处方”实体之间存在一对一(1:1)的联系,因此挂号单的主键“就诊号”可以作为门诊处方的主键,门诊处方的外键是“就诊号”和“收银员编号(或收银员)”。
对于“药品库存”关系模式,其主要记录药品的详细信息和库存信息,根据表2的数据,“药品库存”关系模式需补充的属性有“类型,库存,货架编号,单位,规格,单价”,其主键是“药品编号”。
由[问题1]的分析结果可知,一张门诊处方中包含多项药品信息,而一种药品也可以存在于多张门诊处方中,因此通过“处方明细”关系模式来表示这种多对多(m:n)的联系,并且由于每种药品的具体信息已经在“药品库存”关系模式中记录,在“处方明细”关系模式中主要记录的是门诊处方与药品的对应关系,以及处方所需药品的具体数量,结合题干给出的关键信息“由于药品价格会发生变化,因此门诊管理系统必须记录处方单上药品的单价”。因此,“处方明细”关系模式需补充的属性有“药品编号,数量,单价”。其中,“就诊号”和“药品编号”既是“处方明细”关系模式的主键,也是它的外键。