软件设计文档三步曲
在大学做综合实验时,开发软件到最后总是要写报告。学到最后,开发软件前就要先有相关文档,写不同方面的各种设计,哎~有时候就搞不懂这3个东西,记下来记下来🤸♂️
概念结构设计 | 逻辑结构设计 | 物理结构设计 |
er图 | 实体关系描述 | 字段约束表格 |
图1 医院管理系统E-R图
逻辑结构设计
医师(工作证号ID,姓名,性别,职称,出生日期,就职年数,科室ID)
科室(科室编号ID,科名,人员,科室电话,科室地址)
病人(病历号ID,姓名,性别,年龄,联系方式,诊断说明,就诊日期,病房ID,药单ID,挂号门诊ID)
挂号类别(类别号ID,类别名称)
病房(病房号ID,床位个数,病房级别)
药单(药单ID,条形码ID)
药品(条形码ID,名称,价格,数量)
医师与科室属于多对一关系,医师与病人属于多对一关系,病人与病房属于多对一关系,病人与药单属于一对一关系,药单与药品属于一对多关系。病人与挂号类别属于多对一关系。
物理结构设计
1、科室表
科室表department包括5个字段,分别是科室编号,科名,人员,科室电话,科室地址。科室表如表1.1所示。
表1.1 科室表
属性 |
列名 |
数据类型 |
长度 |
约束 |
科室编号 |
dID |
int |
11 |
主键、Not null |
科名 |
dName |
varchar |
100 |
Not null |
人员 |
dPernum |
int |
3 |
|
科室电话 |
dPhone |
varchar |
20 |
|
科室地址 |
uOffice |
varchar |
50 |
|
2、医师表
医师表physician包括7个字段,分别是工作证号,科室ID,姓名,性别,职称,出生日期,就职年数。医师表如表1.2所示。
表1.2 医师表
属性 |
列名 |
数据类型 |
长度 |
约束 |
工作证号 |
pID |
int |
11 |
主键、Not null |
科室ID |
dID |
int |
11 |
外键 |
姓名 |
pName |
varchar |
30 |
Not null |
性别 |
pSex |
enum |
('男','女') |
默认男 |
职称 |
pOccname |
varchar |
30 |
|
出生日期 |
pBirth |
datetime |
0 |
|
就职年数 |
pYear |
year |
|
|
3、病房表
病房表inpatient包括3个字段,分别是病房号,床位个数,病房级别。病房表如表1.3所示。
表1.3 病房表
属性 |
列名 |
数据类型 |
长度 |
约束 |
病房号 |
iID |
int |
11 |
主键、Not null |
床位个数 |
iNum |
int |
11 |
|
病房级别 |
iType |
varchar |
100 |
|
4、挂号类别表
挂号类别表regtype包括2个字段,分别是类别号,类别名称。挂号类别表如表1.4所示。
表1.4 挂号类别表
属性 |
列名 |
数据类型 |
长度 |
约束 |
类别号 |
rID |
int |
11 |
主键、Not null |
类别名称 |
rName |
varchar |
100 |
|
5、药品表
药品表inpatient包括4个字段,分别是条形码,名称,价格,数量。药品表如表1.5所示。
表1.5 药品表
属性 |
列名 |
数据类型 |
长度 |
约束 |
条形码 |
drID |
int |
11 |
主键、Not null |
名称 |
drame |
varchar |
100 |
|
价格 |
drPrice |
float |
|
默认0 |
数量 |
drNum |
int |
11 |
|
6、药单表
药单表plist包括2个字段,分别是病历号,条形码。药单表如表1.6所示。
表1.6 药单表
属性 |
列名 |
数据类型 |
长度 |
约束 |
病历号 |
bid |
int |
11 |
Not null |
条形码 |
drID |
int |
11 |
Not null |
7、病人表
病人表patient包括11个字段,分别是病历号,医师ID,病房ID,药单ID,挂号门诊ID,姓名,性别,年龄,联系方式,诊断说明,就诊日期。病人表如表1.6所示。
表1.7 病人表
属性 |
列名 |
数据类型 |
长度 |
约束 |
病历号 |
bid |
int |
11 |
主键、Not null |
医师ID |
pID |
int |
11 |
外键 |
病房ID |
iID |
int |
11 |
外键 |
药单ID |
drID |
int |
11 |
外键 |
挂号门诊ID |
rID |
int |
11 |
外键 |
姓名 |
bName |
varchar |
30 |
Not null |
性别 |
bsex |
enum |
('男','女') |
默认男 |
年龄 |
bAge |
date |
|
|
联系方式 |
bPhone |
varchar |
20 |
|
诊断说明 |
bInfo |
longtext |
|
|
就诊日期 |
bBirth |
date |
|
|