




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海电力学院 数据库设计课程设计 题题 目目 中草药销售管理系统中草药销售管理系统 学生姓名 学生姓名 李辰源李辰源 学学 号 号 2013179120131791 班班 级 级 201054201054 院院 系 系 计算机科学与技术学院计算机科学与技术学院 专业年级 专业年级 计算机科学与技术 卓越 计算机科学与技术 卓越 级级 20152015年年 6 6 月月 1010 日日 目录 一 需求分析 1 1 问题描述 1 2 系统性要求 1 3 完整性规则 1 4 安全性规则 1 二 概念结构设计 2 三 逻辑结构设计 4 1 模式设计 4 2 子模式设计 6 I 视图 6 II 查询信息 6 四 数据库的物理设计 6 五 数据库设计实现及运行 7 1 数据库的创建 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 一 需求分析 1 1 问题描述 问题描述 中草药销售管理系统主要面向于小型商户 实现管理层 门面销售 层人员的权限分离 通过管理仓库 销售记录等数据统计并显示各 类信息 2 2 系统性要求 系统性要求 i 信息录入 进货 销售等环节 都需要往数据库中添加信息 ii 信息修改 当数据库中信息发生了改变 需要及时修改信息 iii 信息查询 可以按条件查询药品基本信息 进货信息 销售信息 当前 仓库中的库存情况等 并尽可能实现多条件组合查询 iv 统计 汇总各药品在规定时间段内的进货总量 销售总量等 v 将近过期的商品 库存量较少的商品请给出提醒 vi 用户权限的限定 超级用户 可以使用本系统提供的任何功能 管理人 员 对药品的进货 定价等进行管理 销售员工用户 可以记录和查询 货物的销售情况 但不可以登记商品的入库操作 3 3 完整性规则 完整性规则 a 设定缺省约束 如进货日期为系统当前日期 b 设置非空约束 如药品名称 c 实施 CHECK 约束 如进货单价 进货数量应大于 0 等 d 实施 CHECK 约束 约束药品类别为 中药 草药 中成药 e 设计触发器 实现库存信息的自动更新 4 4 安全性规则 安全性规则 a 不同用户的权限界面 通过不同的登陆账户区分账户并开启不同的界面 b 分离最低权限用户同时拥有仓管权限和销售权限的可能性 c 程序代码中界面代码和数据库访问代码分开 加强安全性 2 二 概念结构设计 数据库 E R 图 库存信息 进货信息 商品信息 销售记录 进库 出库 采购 仓库号进货编号库存数量 商品类别商品名称产日 商品编号 进货编号 商品编号 进货日期有效期进货单价 数量 生产日期 仓位号销售单价销售量柜台号 销售人工 号 销售编号 销售日期 n n 1 1 1 n 3 实体转化为关系模式 销售记录 销售编号 仓位号 销售单价 销售量 柜台号 销售人工号 销售日期 库存信息 仓位号 进货编号 库存数量 进货信息 进货编号 商品编号 生产日期 进货日期 有效期 进货单价 进货数 量 商品信息 商品编号 商品类别 商品名称 产地 采购 采购编号 商品编号 生产商 采购价格 权限层次 登陆页面 经理超级用户销售员 一级权限超级权限二级权限 1 仓库管理 2 销售管理 3 信息查询 4 逼仓巡视 1 销售管理 2 信息查询 3 逼仓巡视 1 仓库管理 2 销售管理 3 信息查询 4 季度查看 5 逼仓巡视 权限等级 超级权限为超级用户所有 面向对象为企业的最高领导人 可使用所有项目 查 看各项资料 一级权限为经理用户所用 面向对象为企业管理层 除查看企业季度营销外 可 使用其他生育功能 二级权限为销售员所用 面向对象为企业营销最前方的工作人员 权限较低 功能模块图 4 仓库管理销售管理信息查询季度查询 1 查询在库药物 2 仓储记录 3 进 出货 4 查询进货记录 1 检阅销售记录 2 增加新销售记录 查询进货 销售 库 存 1 自定义时间跨度 查询 2 查询进货记录及 销售记录 逼仓巡视 1 全权限通用 2 检阅符合条件的 逼仓物资 功能模块 仓库管理 查询在库药物 仓储记录等一系列仓库记录 控制进 出货 查询记录 销售记录 查询搜友销售记录 可以添加新的销售记录 并自动与仓库记录同步 信息查询 通过指定药物类别 名称等一系列信息 查看相应的记录 季度查询 从整体角度观察某段时间的进出货情况 帮助企业制定战略 逼仓巡视 查询所有记录 确认其中逼仓 逼期药物 三 逻辑结构设计 1 1 模式设计 模式设计 销售记录 销售编号 仓位号 销售单价 销售量 柜台号 销售人工号 销售日期 库存信息 仓位号 进货编号 库存数量 进货信息 进货编号 商品编号 生产日期 进货日期 有效期 进货单价 进货数 量 商品信息 5 商品编号 商品类别 商品名称 产地 采购 采购编号 商品编号 生产商 采购价格 Item 药品信息 字段名类型大小是否 可为空 备注 药品编号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否缺省默认值 当天日期 Warehouse 仓储信息 字段名类型大小是否 可为空 备注 6 仓位号Int否primary key 进货编号Int否Foreignkey 库存数量Int否 Item 采购 字段名类型大小是否 可为空 备注 采购编号Int否primary key 药品名称Varchar20否Foreignkey 采购价格Int否 生产商varchar20否 采购数量Int否 2 2 子模式设计 子模式设计 I 视图 视图 逼仓情况 进货编号 药品名称 进货单价 进货数量 有效期 库存数量 仓储情况 仓位号 药品编号 进货编号 药品类别 药品名称 进货日期 有 效期 库存数量 产地 进货情况 进货编号 药品编号 药品类别 药品名称 仓位号 进货日期 有 效期 进货数量 产地 进货单价 销售情况 销售编号 药品编号 柜台号 销售人工号 药品名称 销售单价 进货数量 销售数量 库存数量 药品类别 仓位号 销售日期 选项卡专用 药品类别 药品名称 产地 库存数量 生产日期 进货日期 有效期 II 查询信息 查询信息 A 查询进货信息 进货编号 药品编号 药品类型 药品数量 进货日期 有 效期 生产日期 B 查询药品信息 药品编号 药品数量 药品名字 生产日期 有效期 产地 C 查询销售信息 进货编号 药品编号 进货单价 销售数量 进货日期 D 库存信息查询 药品编号 库存数量 有效期 生产日期 四 数据库的物理设计 为了提高在表中搜索元组的速度 在实际实现的时候应该基于某些属性建立索引 给 7 出所建立的索引 包括按哪些表中哪些属性按升序还是降序来创建索引及相应的T SQL的 创建语句 Create index index Me on Medicine 药品编号 Create index index kucun on Warehouse 仓位号 五 数据库设计实现及运行 1 1 数据库的创建 数据库的创建 T SQL 语句 create database Medicine name Medicine data filename D Medicine data mdf size 5mb maxsize 100mb filegrowth 15 2 2 数据表的创建 举例 数据表的创建 举例 T SQL 语句 说明 若有完整性约束的一方面可以创建时同时实现 按需求及自行设计模块中所实 现的情况 在该部分对完整性约束加以实现 drop table Sale create table Sale 销售编号 int identity 1 1 primary key 仓位号 int not null 销售单价 int not null 销售量 int not null 柜台号 int not null 销售人工号 int not null 8 销售日期 date not null 3 3 视图的创建 仅需给出自己设计模块中所用的视图 视图的创建 仅需给出自己设计模块中所用的视图 T SQL 语句 Create view 仓储情况 As SELECT 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 库存数量 数量 9 BEGIN update Warehouse set 库存数量 select 库存数量 from Warehouse where 仓位 号 仓位号 数量 where 仓位号 仓位号 END else BEGIN return 2 END END else BEGIN return 3 END 在宿主语言中调用存储过程代码段 粘贴 public void OutW int t1 int t2 出货 try Class forName driverName Connection dbConn DriverManager getConnection dbURL userName userPwd CallableStatement cmd dbConn prepareCall call Out cmd setInt 1 t1 cmd setInt 2 t2 cmd execute cmd close catch Exception e e printStackTrace javax swing JOptionPane showMessageDialog null 无法链接数据库 测试结果粘贴 此处举例的存储过程为仓库出货过程 10 5 5 触发器的定义实现 仅需给出自己设计模块中所用的 触发器的定义实现 仅需给出自己设计模块中所用的 T SQL 语句 USE Medicine GO Object Trigger dbo UpIn Script Date 2015 6 11 12 32 32 SET ANSI NULLS ON 11 GO SET QUOTED IDENTIFIER ON GO ALTER TRIGGER dbo UpIn ON dbo PutIn FOR Insert AS declare 仓位号 INT declare 进货编号 INT declare 库存数量 INT select 进货编号 进货编号 from INSERTED select 库存数量 进货数量 from INSERTED select 仓位号 1000 RAND begin insert into Warehouse values 仓位号 进货编号 库存数量 END 测试结果 该触发器作用于进货记录表 作用是当出现新插入行为时 将相应信息插入库存 表 1 插入数据操作 插入数据操作 insert into PutIn values t1 t2 t3 t4 t5 t6 t7 每个功能模块描述方法如下 功能界面 粘贴 12 功能界面简单描述 使用进货界面时 按信息填入记录按确定即可 T SQL 语句与宿主语言嵌套使用代码段 粘贴 Fin1 addActionListener new ActionListener 进货记录 Override public void actionPerformed ActionEvent e try String te1 year getSelectedItem toString te2 month getSelectedIte m toString String te3 year2 getSelectedItem toString te4 month2 getSelectedI tem toString te1 te1 te2 1 te2 te3 te4 1 Welcome5 setVisible false 13 String cols 仓位号 进货编号 药 品编号 药品名称 进货日期 有效期 进货数量 rows DW Wym te1 te2 DefaultTableModel dtm new DefaultTableModel rows cols yitable setModel dtm yitable1 setVisible true catch Exception e1 e1 printStackTrace System out println 输入错误 javax swing JOptionPane showMessageDialog null 输入有误 请重新输入 测试结果粘贴 14 2 插入数据操作 插入数据操作 使用者可按需修改商品信息 先查找 后修改 SQL 语句实现 String sql update Item set 药品名称 text 药品类别 text2 产地 text3 where 药品编号 parseInt 15 六 系统详细设计及实现 1 1 系统功能模块说明 系统功能模块说明 本程序分仓库管理 销售管理 信息查询 统计管理 逼仓巡视 5 个界面 只有超级用户在仓库管理页面具有修改按钮 而其他用户只拥有查询按钮 本程序通过预读数据库内容 在信息查询页面采用人性化的选项卡选择 避免了 可能出现的输入错误而造成的失误 同时本程序所有查询均满足单一查询 即多空只 填一即可 在销售管理页面中 用户可以添加新的销售信息 但销售数量等仍需满足库存要 求 若库存不足将无法添加并自动滚回操作 若插入成功 则自动更新库存数量表格 2 2 每个模块的关键语句及关键技术说明 每个模块的关键语句及关键技术说明 I 仓库管理 仓库管理 多按钮 分线界面 使用户视觉清晰 不至于觉得界面太过凌乱 表格可随 时使用不同按钮更新 jPanel1 add Welcome jPanel1 add wtable1 T1 setLayout null T2 setLayout null T3 setLayout null T4 setLayout null T1 setBounds 515 20 270 80 T2 setBounds 515 120 270 80 T3 setBounds 515 220 270 80 T4 setBounds 515 320 270 80 jPanel1 add T1 jPanel1 add T2 jPanel1 add T3 jPanel1 add T4 MedicineMs new JButton 在库药物信息 Search1 new JButton 更改 MedicineMs setBounds 10 30 120 30 Search1 setBounds 160 30 100 30 AllMs new JButton 仓储记录 Search2 new JButton 查找 AllMs setBounds 10 30 120 30 Search2 setBounds 160 30 100 30 Insert new JButton 进货 Out new JButton 出货 Insert setBounds 10 30 120 30 Out setBounds 160 30 100 30 WareMs new JButton 进货记录 WareMs setBounds 10 30 120 30 T1 add MedicineMs T1 add Search1 T2 add AllMs T2 add Search2 T3 add Insert T3 add Out T4 add WareMs 16 II 销售管理 销售管理 随时验证库存数量 从而决定是否可以插入新数据 此由触发器实现 USE Medicine GO Object Trigger dbo Up Script Date 2015 6 15 9 33 30 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER TRIGGER dbo Up ON dbo Sale FOR INSERT AS declare 仓位号 int declare 数量 int declare 库存数量 int select 仓位号 仓位号 from INSERTED if exists select from Warehouse where 仓位号 仓位号 BEGIN select 数量 销售数量 from INSERTED select 库存数量 库存数量 from Warehouse where 仓位号 仓位号 if 库存数量 数量 1 BEGIN ROLLBACK TRAN print 库存量不足 不允许出库 END else update Warehouse set 库存数量 库存数量 数量 where 仓位号 仓位号 END 17 七 附录 部分代码 存储过程 1 按名称或类别搜索销售记录 USE Medicine GO Object StoredProcedure dbo SearchSale Script Date 2015 6 15 21 23 16 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER PROCEDURE dbo SearchSale 药品名称 varchar 20 药品类别 varchar 20 AS if 药品名称 is null and 药品类别 is null return 6 else if 药品名称 is not null and 药品类别 is not null BEGIN select 销售编号 仓位号 药品名称 药品类别 销售单价 销售数量 柜台号 销售人工 号 销售日期 from 销售情况 where 药品名称 药品名称 and 药品类别 药品类别 END if 药品名称 is not null and 药品类别 is null select 销售编号 仓位号 药品名称 药品类别 销售单价 销售数量 柜台号 销售人工 号 销售日期 from 销售情况 where 药品名称 药品名称 if 药品类别 is not null and 药品名称 is null select 销售编号 仓位号 药品名称 药品类别 销售单价 销售数量 柜台号 销售人工 号 销售日期 from 销售情况 where 药品类别 药品类别 2 进货 USE Medicine GO Object StoredProcedure dbo Ware insert Script Date 2015 6 15 21 23 43 18 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER PROCEDURE dbo Ware insert 仓位号 int 进货编号 int 库存数量int AS if exists select from Warehouse where 仓位号 仓位号 Rollback TransAction else insert into Warehouse 仓位号 进货编号 库存数量 values 仓位号 进货编号 库存数量 触发器 1 进货时更新库存表 位于 PutIn 表 USE Medicine GO Object Trigger dbo UpIn Script Date 2015 6 15 21 28 58 SET ANSI NULLS ON GO SET QUOTED I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级语文课外阅读提升计划
- 工厂安全事故应急处置流程
- 四年级信息技术综合能力提升教学计划
- 医院精准营销推广策划方案范文
- 广东省五华县联考2026届八年级物理第一学期期末调研试题含解析
- 2026届安徽省安庆市怀宁县八年级物理第一学期期末经典模拟试题含解析
- 广西百色市德保县2026届物理八年级第一学期期末学业质量监测试题含解析
- 白皮书行业应用2025年人工智能在智能家电教育中的应用方案
- 震动监测装置2025年在建筑抗震设计中的技术应用报告
- 桥梁维修2025年飞手作业成本控制分析报告
- 送别混声合唱简谱
- 幼儿园分餐培训课件
- 化学在材料科学中的应用
- 高中物理知识模型探究与实践-电磁学篇
- 全球车载玻璃盖板行业调查分析2024年
- 四年级下册递等式计算练习400道及答案
- 如何提高培智学校课堂教学的有效性
- 电工学(第8版)(上册 电工技术) 课件全套 秦曾煌 第1-14章 电路的基本概念与基本定律- 传感器
- 康复设备与康复仪器的康复设备与康复仪器
- 全域土地综合整治专项规划
- 投资担保公司项目融资计划书
评论
0/150
提交评论