1.需求分析(描述本设计的应用范围,业务规则简介等)
大型药房销售管理系统
1、包括五个或五个以上基本表,其中至少有一个是基于实体之间联系的基本表;
2、药品销售、出库、入库、库存管理、结帐管理等。
3、设置用户权限管理,不同权限的用户不同信息操作的权限要区分;
2.概念模型设计(简易E_R图)
3.逻辑结构设计(主要设计关系模型,及简化的数据字典)
1.相关属性列表
实体或联系 | 属性 |
药厂 药房库存 药品销售 结账管理 职工 入库 出库 负责 结算 | 药品编号、药品名称、生产地址 药品编号、药品数量、管理员编号 药品编号、药品价格、销售员编号 药品编号、结算总额、结账员编号 职工编号、姓名、职称 药品编号、药品名称、药品数量 药品编号、药品名称、药品数量 职工编号、管理员编号、销售员编号、结账员编号 药品编号、药品价格、结算总额 |
2.表属性
药厂表
字段名 | 类型 | 宽度 | 可空 | 主键 | 外键 | 默认值 |
药厂编号 | Int | N | Y | |||
药品编号 | Int | N | ||||
药品名称 | Varchar | 20 |
药房库存表
字段名 | 类型 | 宽度 | 可空 | 主键 | 外键 | 默认值 |
药品编号 | Int | N | Y | |||
药品数量 | Int | 0 | ||||
管理员编号 | Int | Y |
药品销售表
字段名 | 类型 | 宽度 | 可空 | 主键 | 外键 | 默认值 |
药品编号 | Int | N | Y | |||
药品价格 | Int | |||||
销售员编号 | Int | Y |
结账管理表
字段名 | 类型 | 宽度 | 可空 | 主键 | 外键 | 默认值 |
药品编号 | Int | N | Y | |||
结算总额 | Int | |||||
结账员编号 | Int | Y |
职工表
字段名 | 类型 | 宽度 | 可空 | 主键 | 外键 | 默认值 |
职工编号 | Int | Y | ||||
姓名 | Varchar | 10 | ||||
职称 | Varchar | 10 | ||||
工作单位 | Varchar | 10 |
在SQL SERVER中完成代码实现,创建相关表
create table 职工
(
职工编号 int not null,
姓名 varchar(10),
职称 varchar(10),
工作单位 varchar(10),
primary key(职工编号)
)
create table 药房库存
(
药品编号 int not null,
药品数量 int,
管理员编号 int,
primary key(药品编号),
foreign key(管理员编号)references 职工(职工编号)
)
create table 药品销售
(
药品编号 int not null,
药品价格 int default 0,
销售员编号 int,
primary key(药品编号),
foreign key(销售员编号)references 职工(职工编号)
)
create table 结账管理
(
药品编号 int not null,
结算总额 int,
结账员编号 int,
primary key(药品编号),
foreign key(结账员编号)references 职工(职工编号)
)
create table 药厂
(
药厂编号 int not null,
药品编号 int not null,
药品名称 varchar(20),
primary key(药厂编号),
foreign key(药品编号)references 药房库存(药品编号)
)
4. 创建关系图(可直接SQL Server中创建的关系图后抓屏。注意:关系图中表名上不能有“*”号,这表示没有保存的状态。)
5.物理结构设计(创建必要的聚集索引(含主键)或非聚集索引,分别说明理由。)
聚集索引(主键)和飞聚集索引(外键)如代码处所示
6.数据库实施(将每个表的部分数据或多表联合查询结果文本(不要截图)贴到此处,如果字段较多或者文本太宽可以用表格)
6.数据库实施(将每个表的部分数据或多表联合查询结果文本(不要截图)贴到此处,如果字段较多或者文本太宽可以用表格。)
select 职工编号,药品编号,药品数量
from 职工 join 药房库存
on 职工.职工编号=药房库存.管理员编号
查询结果:
职工编号 药品编号 药品数量
----------- ----------- -----------
(0 行受影响)
完成时间: 2023-11-29T16:32:15.6384334+08:00
(3)设置用户权限管理,不同权限的用户不同信息操作的权限要区分;
给相表设置用户权限