数据库课程设计(在线销售系统)
《数据库系统》课程设计
土特产网上销售系统设计与开发
一、 系统需求分析
(一) 需求概述
随着计算机技术在各行各业的应用日益广泛深入,网络购物早已盛行。
电子商务在各行各业的发展战略中占有重要地位,已成为各大企业的必经之路。商品流通不局限于传统渠道。网络平台已成为企业展示自我、提升形象的舞台。企业通过建立网站,将产品、资源等方面的信息展示在互联网上。计算机和互联网技术本身具有信息透明、信息传播速度快、管理速度快的特点,不仅可以改善原有的商业模式和效率,还可以为企业带来更高的收益。因此,拥有自己的购物网站对于企业来说是非常重要的。 与传统零售业相比,网络购物具有许多无法比拟的优势。首先,以店铺销售或商场销售为代表的零售行业,由于地域限制,局限在小范围内。借助互联网,消费者可以通过网上商城浏览和获取世界各地商家的商品信息;其次,通过网络购物渠道,消费者可以在家购物;第三,同样是商品信息和统计的管理,传统零售行业需要花费大量的人力才能完成,而很多销售网站信息可以轻松实现自动化管理,大大降低企业的管理成本;最后,建立自己的网上购物系统,有利于提升企业和商家的企业形象,提高服务质量,展示企业信息化水平。
我设计的网购系统的数据库开发和存储,可以存储卖家需要销售的本地商品的所有信息,以及用户的所有信息。方便用户根据自己的喜好浏览自己喜欢的东西。如果他想买土特产,可以去网上买,登录后就可以去购物了。 店内各种土特产都分类详细,很容易找到当地的土特产品。同时,搜索系统可以轻松找到相关的本地产品。同时,买了喜欢的东西后,就可以结账了。通过填写您自己的信息,您可以下订单并完成购物流程。
现在我们要建立一个本地产品的在线销售系统。我们应该管理卖家的本地产品、用户信息、用户的购买记录等基本信息。确保足够的安全。使网上购物系统得以推广,让更多的卖家和购物者认为网上购物系统非常实惠和方便。这是一个非常有用的购物系统
功能模块设计:
表1:功能模块设计图
面向不同用户实现不同功能:
- 面向顾客时,顾客可以浏览全部的商品信息,因为对商品进行了分类,所以顾客选择的商品种类更加细化,在完成购物后可以查看订单信息状态。
- 面向管理员时:管理员需要对各类商品,用户和订单信息进维护和修改,但是不能修改管理员自己的信息,在用户,商品信息出现差错时及时改正。
- 面向供货商时,供货商应只对商品负责,所以可以对商品增添减少,供应量取决于订单量,所以可以查看订单信息。包括自己的信息也可以查看。
(二) 业务流分析
用户界面:
表2:用户流程图
普通用户:
- 浏览商品、按类别查询商品,查看商品的详细信息
- 查看购买商品之后的订单信息
- 注册成为用户
管理员界面:
表3:管理员流程图
管理员:
- 查看商品信息,判断是否需要补充商品,如果需要补充则通知供应商增删商品
- 查看订单信息,判断订单信息和商品库存是否一一对应,如果有误需要修改订单信息
- 可根据供应商供给需求修改供应商信息
- 修改用户信息
供应商界面:
表4:供应商流程图
供应商:
- 查看商品信息,根据商品数量决定是否供应
- 查看订单信息,以核对商品数量
**
(三) 数据流分析
**
表5:数据流图
(四) 数据字典
二、 数据库概念结构设计
(一) 实体分析
经需求分析,本次课程设计中包含五个实体,他们分别是:用户实体、订单实体、管理员实体、商品实体、商品组实体、供应商实体。
(二) 属性分析
用户实体属性:用户编号,姓名,电话,密码,地址
表6:用户实体属性图
土特产商品实体属性:土特产商品编号,名称,价格,土特产商品组编号
表7:土特产商品实体属性图
订单实体属性:订单编号,订单日期,价格,用户编号,土特产商品编号
表8:订单实体属性图
土特产商品组实体属性:土特产商品组编号,土特产商品组名称,管理员编号,供应商编号
表9:土特产商品组实体属性图
管理员实体属性:管理员编号,管理员姓名,电话,密码,地址
表9:管理员实体属性图
供应商实体属性:供应商编号,密码,电话,地址,土特产商品组编号,订单编号
表10:供应商实体属性图
(三) 联系分析
多个供应商可以供应多种商品组,多个用户也可以购买多种商品,多种商品的集合是一个商品组,但是一种商品对应一个订单,用户购买商品产生唯一订单对应唯一的商品。多个管理员管理所有商品组和所有订单和供应商,所以是多对多的关系。
(四) 概念模型设计(CDM图)
表11:CDM图
三、数据库物理结构设计
(一)概念模型转化为物理模型
- 一对一关系的转化
用户只能查看一项订单,所以用户和订单是一对一关系
一个商品产生一个订单,所以是一对一关系。 - 一对多关系的转化
一个商品组由多个商品组成,商品组和商品关系是一对多 - 多对多关系的转化
多个管理员管理多种信息
一个用户可以购买多个商品,一个商品也可以被多个用户购买
多个供应商供应多种商品组,也可以查看多个订单
(二)物理逻辑模型设计(PDM图)
表12:PDM图
四、数据库物理实现
(一) 表设计
用户信息表:
字段名称 数据类型 长度 取值范围 备注
用户编号 char 10 0001-9999 主键,非空
姓名 vchar 20 非空
电话 Char 10
密码 Char 10 非空
地址 vchar 20
土特产商品信息表:
字段名称 数据类型 长度 取值范围 备注
土特产商品编号 char 10 0001-9999 主键,非空
土特产商品组编号 char 10 0001-9999 外键,非空
名称 Vchar 20 非空
价格 Float 非空
订单信息表:
字段名称 数据类型 长度 取值范围 备注
订单编号 Char 10 0001-9999 主键,非空
订单日期 Data 非空
价格 Float 非空
用户编号 char 10 0001-9999 外键,非空
土特产商品编号 char 10 0001-9999 外键,非空
土特产商品组信息表
字段名称 数据类型 长度 取值范围 备注
土特产商品组编号 char 10 0001-9999 主键,非空
土特产商品组名称 vchar 20 非空
供应商编号 char 10 0001-9999 外键,非空
管理员编号 char 10 0001-9999 外键,非空
管理员信息表:
字段名称 数据类型 长度 取值范围 备注
管理员编号 char 10 0001-9999 主键,非空
管理员姓名 vchar 20 非空
密码 Char 10 非空
电话 Char 10 非空
地址 vchar 20
供应商信息表:
字段名称 数据类型 长度 取值范围 备注
供应商编号 char 10 0001-9999 主键,非空
密码 Char 10 非空
电话 Char 10 非空
地址 vchar 20
土特产商品组编号 char 10 0001-9999 外键,非空
订单编号 Char 10 0001-9999 外键,非空
(二) 创建表和完整性约束代码设计
1. 创建用户信息表及完整性约束:
create table 用户信息表(
用户编号 char(10) not null primary key,
姓名 varchar(20) not null,
密码 char(20) not null,
电话 char(10) null,
地址 varchar(20) null,
)
2. 创建土特产商品信息表及完整性约束:
create table 土特产商品信息表(
土特产商品编号 char(10) not null primary key,
土特产商品组编号 char(10) not null,
名称 varchar(20) not null,
价格 float not null,
)
alter table 土特产商品信息表
add constraint FK_土特产商品信息表_REFRENCE_土特产商品组信息表 foreign key (土特产商品组编号)
references 土特产商品组信息表(土特产商品组编号)
3. 创建订单信息表及完整性约束:
create table 订单信息表(
订单编号 char (10) not null primary key,
用户编号 char (10) not null,
土特产商品编号 char (10) not null,
订单日期 datetime not null,
价格 float not null,
)
alter table 订单信息表
add constraint FK_订单信息表_REFRENCE_用户信息表 foreign key (用户编号)
references 用户信息表(用户编号)
alter table 订单信息表
add constraint FK_订单信息表_REFRENCE_土特产商品信息表 foreign key (土特产商品编号)
references 土特产商品信息表(土特产商品编号)
4. 创建土特产商品组信息表及完整性约束:
create table 土特产商品组信息表(
土特产商品组编号 char(10) not null primary key,
土特产商品组名称 varchar(20) not null,
管理员编号 char(10) not null,
供应商编号 char(10) not null
)
alter table 土特产商品组信息表
add constraint FK_土特产商品组信息表_REFRENCE_管理员信息表 foreign key (管理员编号)
references 管理员信息表(管理员编号)
alter table 土特产商品组信息表
add constraint FK_土特产商品组信息表_REFRENCE_供应商信息表 foreign key (供应商编号)
references 供应商信息表(供应商编号)
5. 创建管理员信息表及完整性约束:
create table 管理员信息表(
管理员编号 char(10) not null primary key,
管理员姓名 varchar(20) not null,
密码 char(20) not null,
电话 char(10) not null,
地址 varchar(20) null,
)
6. 创建供应商信息表及完整性约束:
create table 供应商信息表(
供应商编号 char(10) not null primary key,
密码 char(20) not null,
电话 char(10) not null,
地址 varchar(20) null,
土特产商品组编号 char (10) not null,
订单编号 char (10) not null
)
alter table 供应商信息表
add constraint FK_供应商信息表_REFRENCE_土特产商品组信息表 foreign key (土特产商品组编号)
references 土特产商品组信息表(土特产商品组编号)
alter table 供应商信息表
add constraint FK_供应商信息表_REFRENCE_订单信息表 foreign key (订单编号)
references 订单信息表(订单编号)
(三) 创建索引、视图和触发器
1. 索引
对管理员编号和供应商编号和用户编号创建唯一非聚集索引
CREATE UNIQUE INDEX NUM on 管理员信息表(管理员编号);
CREATE UNIQUE INDEX NUM2 on 供应商信息表(供应商编号);
CREATE UNIQUE INDEX NUM3 on 用户信息表(用户编号);
2. 视图
1.对土特产商品创建视图
CREATE VIEW 土特产商品_view
AS SELECT *
FROM 土特产商品信息表
对土特产商品组创建视图
CREATE VIEW 土特产商品组_view
AS SELECT *
FROM 土特产商品组信息表对订单信息创建视图
CREATE VIEW 订单_view
AS SELECT *
FROM 订单信息表
3. 触发器
1.在新用户注册成功后,显示欢迎光临
CREATE TRIGGER trigger_Emp
ON 用户信息表
AFTER INSERT
AS
PRINT’欢迎光临’
2.管理员不可删除管理员成员
CREATE TRIGGER DELETE_ID
ON 管理员信息表
instead of DELETE
AS
begin
print’禁止删除’
ROLLBACK TRANSACTION
Endd
3.在成功增加商品组后显示供应成功
CREATE TRIGGER trigger_Emp1
ON 土特产商品组信息表
AFTER INSERT
AS
PRINT’供货成功’
五、数据库功能调试
(一) 用户模块
- 用户注册
查询土特产商品
查看订单信息
(二) 供应商模块
- 供应商品
退还商品
查看订单
(三) 管理员模块
修改用户信息
修改商品信息
修改供应商信息
修改订单信息
修改商品组信息
六、设计总结
在本次课程设计中,遇到了许多的困难,在技术方面有非常多的困难。比如在powerdesigner的使用上,由于大部分仍是英文,需要学习的东西非常多。在设计cdm时,表与表之间的关系一点要搞清楚,所以在一开始的时候,一点要最全局有个清楚的构思,我在写到后面时,不停的推翻前面的方案,导致图需要修改的很多,这就导致花费了许多的时间。
在用pdm转成数据库时,连接不上数据库,在网上找了许多的方法,仍是不行,可能是缺失某个程序,但是可以转换成sql语句,但是cmd在转换成pdm时会把关系转换成表,原本我以后可以直接使用pdm转换的sql代码,但是会多出许多表,并且没有外键,只有索引,并且索引非常多,是因为太多的表造成的,所以最后我自己创建表设立主外键。
在插入数据时,因为如果没有主键内容,插入外键信息会报错,只能将外键删除再重新插入,
在功能实现上仍有不足,所有的主键信息都无法修改,也不能置空,所以在修改别的信息时如果牵扯到主键的修改就无法修改。
总体说来,在这次一个学期的课程设计中,我学到了很多在课堂内学不到的知识。整个开发的过程对我来说是一次能力真正提高的过程;是将以前所学知识充分利用的过程;是一次将理论应用于实践的过程。我觉得这次课程设计是一次很有收获的实践.
数据库课程设计(在线销售系统)相关推荐
- 数据库课程设计——滴滴打车系统
1 引言 1.1需求分析 滴滴打车系统的主要应用需求来自乘客.司机两个身份的用户需求.对于乘客,他可以登入系统,查看自己的信息,修改自己的密码,进行打车下单的操作和给管理员留言的操作:对于司机,他可以 ...
- 山东大学数据库课程设计火车票系统报告
数据库课程设计报告 ----火车票订票系统 学院: 专业: 班级: 姓名: 学号: 目录 一.系统开发平台 3 二.数据库规划 3 2.1 任务陈述 3 2.2 任务目标 3 三.系 ...
- 数据库课程设计--淘宝购物订单系统
数据库课程设计–淘宝订单系统 也不知道那个憨批给我改的鸟名,孩他妈只能一个月一改,我服了. 过几天写个java版本的出来,php写的感觉技术含量太低,效率也低 前台:https://mysql.cxy ...
- 数据库课程设计——火车票售票系统
摘要 数据库课程设计的题目,设计了一个火车票售票系统,实现了列车信息查询,车票查询及购买,订单查询,个人信息管理等功能,数据是从12306爬取的真实数据. 项目链接 前端项目链接:https://gi ...
- oracle学生考勤,Oracle数据库课程设计――学生考勤系统的Oracle实现1
Oracle数据库课程设计――学生考勤系统的Oracle实现1 辽宁工程技术大学 Oracle数据库课程设计报告 学生考勤系统 姓 名: XXXXX 班 级: 计SJ08-1班 学 号: 完成日期: ...
- 汽车站订票系统mysql实验_数据库课程设计报告-车站售票管理系统
数据库课程设计报告-车站售票管理系统 吉林工程技术师范学院 课程设计报告 设计名称: 车站售票信息管理系统 姓 名: 孟祥丽 学 号: 23号 专 业: 计算机科学与技术 班 级: C1042 院 系 ...
- 学生选课系统 数据库课程设计
数据库课程设计报告 设计题目 学生选课系统 专 业 计算机科学与技术 班 级 计1101 学 号 姓 名 寸利芳 ...
- 数据库课程设计——MySQL火车票售票系统
数据库课程设计--火车票售票系统 很烦数据库课程设计?阅读本篇文章会让你不那么烦躁~ 话不多说先放源代码: https://github.com/shadowings-zy/TrainTicketsS ...
- 数据库课程设计————学生考试系统
1.敲代码前的准备工作 1.1准备开发工具 1.1.1 开发工具的说明 本系统利用了xampp 集成环境,利用PHP写后端,html.css.js写前端(其实笔者也是现学现卖) 1.1.2 xampp ...
- JAVA 点菜系统数据库课程设计
点菜系统数据库课程设计 效果图 数据库建表 CREATE TABLE OrderDish (orderid int not null,money int,primary key(orderid) ); ...
最新文章
- 想要自学深度学习?不用GPU,浏览器就够了
- 关于 Fatal NI connect error 12170
- 全国Python科研应用专题实操培训班通知
- 基于 c++ 语言的简易 vim 编辑器
- Windows桌面分享程序设计
- 浏览器cookie被禁掉,该如何去解决
- c语言----斐波那契数列
- python抽奖程序_抽奖程序python
- Python 实战 | 工欲善其事,必先利其器
- 在线购物系统 实验三分析类类图
- 2023届暑期实习华为面试手撕题
- 交换机(三层)接入层、汇聚层和核心层交换机的特点
- 桌面整理助手 - DesktopAssistant 1.2.1.9
- Go:DepthFirstSearch深度优先搜索算法(附完整源码)
- 全国计算机等级考试补考时间,全国计算机等级考试可以补考么(全国计算机一级报名时间)...
- 计算机应用基础中课程表怎么制作,浅谈《计算机应用基础》课程中Word表格的制作课程教学...
- python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
- React-Native搭建Android平台(ZUCC智能终端与移动应用开发lab1)
- java注册界面发送邮箱验证码(无线程版)
- 家庭网络实现公网IPv6
热门文章
- ipad+mysql+客户端_MySQL QueryDB Client
- 暮光之城2蓝光BD高清下载
- 百度SEOdedecms织梦采集侠V2.9采集插件
- extremecomponents-1.0.1.jar 的使用小例子
- RubyOnRails终极部署
- linux C++ socket编程 实例
- alexa工具条下载_如何聆听(和删除)您给Alexa的每条命令
- 2021河北计算机专接本考试复习资料
- 学习Python的几个优质平台
- 智联+影音,AITO问界M7想干翻的不止理想One