《数据库设计-----中草药销售管理系统介绍》由会员分享,可在线阅读,更多相关《数据库设计-----中草药销售管理系统介绍(21页珍藏版)》请在金锄头文库上搜索。
1、上海电力学院数据库设计课程设计题目: 中草药销售管理系统 学生姓名: 李辰源 学 号: 20131791 班 级: 201054 院系: 计算机科学与技术学院 专业年级: 计算机科学与技术(卓越) 级 2015年6 月10 日目录一、需求分析- 1 -(1)问题描述:- 1 -(2) 系统性要求:- 1 -(3) 完整性规则:- 1 -(4) 安全性规则:- 1 -二、概念结构设计- 2 -三、逻辑结构设计- 4 -(1)模式设计:- 4 -(2)子模式设计:- 6 -I、视图:- 6 -II、查询信息:- 6 -四、数据库的物理设计- 6 -五、数据库设计实现及运行- 7 -(1)数据库的创
2、建- 7 -(2)数据表的创建(举例)- 7 -(3)视图的创建(仅需给出自己设计模块中所用的视图)- 7 -(4)存储过程的定义实现(仅需给出自己设计模块中所用的)- 8 -(5)触发器的定义实现(仅需给出自己设计模块中所用的)- 10 -1)插入数据操作- 11 -2)插入数据操作- 14 -六、系统详细设计及实现- 14 -(1)系统功能模块说明- 14 -(2)每个模块的关键语句及关键技术说明- 15 -I、仓库管理:- 15 -II、销售管理:- 15 -七、附录:部分代码- 16 -八、心得体会- 19 -一、需求分析(1) 问题描述: 中草药销售管理系统主要面向于小型商户,实现管
3、理层,门面销售层人员的权限分离,通过管理仓库,销售记录等数据统计并显示各类信息。(2) 系统性要求:i. 信息录入:进货、销售等环节,都需要往数据库中添加信息。ii. 信息修改:当数据库中信息发生了改变,需要及时修改信息iii. 信息查询:可以按条件查询药品基本信息、进货信息、销售信息、当前仓库中的库存情况等,并尽可能实现多条件组合查询。iv. 统计、汇总各药品在规定时间段内的进货总量、销售总量等。v. 将近过期的商品、库存量较少的商品请给出提醒。vi. 用户权限的限定(超级用户,可以使用本系统提供的任何功能;管理人员,对药品的进货,定价等进行管理;销售员工用户,可以记录和查询货物的销售情况,
4、但不可以登记商品的入库操作)(3) 完整性规则:a) 设定缺省约束。如进货日期为系统当前日期。b) 设置非空约束。如药品名称。c) 实施CHECK约束,如进货单价、进货数量应大于0等。d) 实施CHECK约束,约束药品类别为:中药、草药、中成药。e) 设计触发器,实现库存信息的自动更新。(4) 安全性规则:a) 不同用户的权限界面,通过不同的登陆账户区分账户并开启不同的界面。b) 分离最低权限用户同时拥有仓管权限和销售权限的可能性。c) 程序代码中界面代码和数据库访问代码分开,加强安全性。 二、概念结构设计数据库E-R图:实体转化为关系模式:销售记录:(销售编号,仓位号,销售单价,销售量,柜台
5、号,销售人工号,销售日期)库存信息:(仓位号,进货编号,库存数量)进货信息:(进货编号,商品编号,生产日期,进货日期,有效期,进货单价,进货数量)商品信息:(商品编号,商品类别,商品名称,产地)采购:(采购编号,商品编号,生产商,采购价格)权限层次:权限等级:超级权限为超级用户所有,面向对象为企业的最高领导人,可使用所有项目,查看各项资料。一级权限为经理用户所用,面向对象为企业管理层,除查看企业季度营销外,可使用其他生育功能。二级权限为销售员所用,面向对象为企业营销最前方的工作人员,权限较低。功能模块图:功能模块:仓库管理:查询在库药物,仓储记录等一系列仓库记录,控制进/出货,查询记录。销售记
6、录:查询搜友销售记录,可以添加新的销售记录,并自动与仓库记录同步。信息查询:通过指定药物类别,名称等一系列信息,查看相应的记录。季度查询:从整体角度观察某段时间的进出货情况,帮助企业制定战略。逼仓巡视:查询所有记录,确认其中逼仓,逼期药物。三、逻辑结构设计(1)模式设计:销售记录:(销售编号,仓位号,销售单价,销售量,柜台号,销售人工号,销售日期)库存信息:(仓位号,进货编号,库存数量)进货信息:(进货编号,商品编号,生产日期,进货日期,有效期,进货单价,进货数量)商品信息:(商品编号,商品类别,商品名称,产地)采购:(采购编号,商品编号,生产商,采购价格) Item :药品信息字段名类型大小
7、是否可为空备注药品编号Int否primary key药品类别Varchar20否Check_约束药品名称varchar20否产地varchar20否 PutIn :进货信息字段名类型大小是否可为空备注进货编号Int否primary key药品编号Int否Foreignkey生产日期date否进货日期date否缺省默认值(当天日期)有效期date否进货单价Int否进货数量Int否 Sale:销售信息字段名类型大小是否可为空备注销售编号Int否primary key仓位号Int否Foreignkey销售单价Int否销售数量Int否柜台号Int否销售人工号Int否销售日期Date否缺省默认值(当天日
8、期) Warehouse:仓储信息字段名类型大小是否可为空备注仓位号Int否primary key进货编号Int否Foreignkey库存数量Int否 Item :采购字段名类型大小是否可为空备注采购编号Int否primary key药品名称Varchar20否Foreignkey采购价格Int否生产商varchar20否采购数量Int否(2)子模式设计:I、视图:逼仓情况(进货编号,药品名称,进货单价,进货数量,有效期,库存数量)仓储情况(仓位号,药品编号,进货编号,药品类别,药品名称,进货日期,有效期,库存数量,产地)进货情况(进货编号,药品编号,药品类别,药品名称,仓位号,进货日期,有效
9、期,进货数量,产地,进货单价)销售情况(销售编号,.药品编号,柜台号,销售人工号,药品名称,销售单价, 进货数量,销售数量,库存数量,药品类别,仓位号,销售日期)选项卡专用(药品类别,药品名称,产地,库存数量,生产日期,进货日期,有效期)II、查询信息:A、 查询进货信息:进货编号、药品编号、药品类型、药品数量、进货日期、有效期、生产日期B、 查询药品信息:药品编号、药品数量、药品名字、生产日期、有效期、产地C、 查询销售信息:进货编号、药品编号、进货单价、销售数量、进货日期D、 库存信息查询:药品编号、库存数量、有效期、生产日期四、数据库的物理设计为了提高在表中搜索元组的速度,在实际实现的时
10、候应该基于某些属性建立索引。给出所建立的索引。(包括按哪些表中哪些属性按升序还是降序来创建索引及相应的T-SQL的创建语句)。Create index index_Meon Medicine(药品编号)Create index index_kucunon Warehouse(仓位号)五、数据库设计实现及运行(1)数据库的创建T-SQL语句:create database Medicine ( name=Medicine_data, filename=D: Medicine _data.mdf, size=5mb maxsize=100mb filegrowth=15% )(2)数据表的创建(举
11、例)T-SQL语句:说明:若有完整性约束的一方面可以创建时同时实现。按需求及自行设计模块中所实现的情况,在该部分对完整性约束加以实现。drop table Salecreate table Sale( 销售编号 int identity(1,1) primary key, 仓位号 int not null, 销售单价 int not null, 销售量 int not null,柜台号 int not null 销售人工号 int not null销售日期 date not null)(3)视图的创建(仅需给出自己设计模块中所用的视图)T-SQL语句:Create view 仓储情况AsSEL
12、ECT TOP (100) PERCENT dbo.PutIn.进货编号, dbo.Item.药品名称, dbo.PutIn.进货单价, dbo.PutIn.进货数量, dbo.PutIn.有效期, dbo.Warehouse.库存数量FROM dbo.Item INNER JOIN dbo.PutIn ON dbo.Item.药品编号 = dbo.PutIn.药品编号 INNER JOIN dbo.Warehouse ON dbo.PutIn.进货编号 = dbo.Warehouse.进货编号WHERE (DATEADD(yy, - 1, dbo.PutIn.有效期) GETDATE() OR (dbo.Warehouse.库存数量 60)(4)存储过程的定义实现(仅需给出自己设计模块中所用的)T-SQL语句:USE MedicineGO/* Object: StoredProcedure dbo.Out Script Date: 2015/6/11 12:21:41 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE dbo.Out仓位号 int ,数量 int ASif exists(select * from Wareho