数据库课程设计(在线销售系统)

  • Post author:
  • Post category:其他




《数据库系统》课程设计



土特产网上销售系统设计与开发



一、 系统需求分析


(一) 需求概述


随着计算机技术在各行各业的应用日益广泛深入,网络购物早已盛行。

电子商务在各行各业的发展战略中占有重要地位,已成为各大企业的必经之路。商品流通不局限于传统渠道。网络平台已成为企业展示自我、提升形象的舞台。企业通过建立网站,将产品、资源等方面的信息展示在互联网上。计算机和互联网技术本身具有信息透明、信息传播速度快、管理速度快的特点,不仅可以改善原有的商业模式和效率,还可以为企业带来更高的收益。因此,拥有自己的购物网站对于企业来说是非常重要的。 与传统零售业相比,网络购物具有许多无法比拟的优势。首先,以店铺销售或商场销售为代表的零售行业,由于地域限制,局限在小范围内。借助互联网,消费者可以通过网上商城浏览和获取世界各地商家的商品信息;其次,通过网络购物渠道,消费者可以在家购物;第三,同样是商品信息和统计的管理,传统零售行业需要花费大量的人力才能完成,而很多销售网站信息可以轻松实现自动化管理,大大降低企业的管理成本;最后,建立自己的网上购物系统,有利于提升企业和商家的企业形象,提高服务质量,展示企业信息化水平。

我设计的网购系统的数据库开发和存储,可以存储卖家需要销售的本地商品的所有信息,以及用户的所有信息。方便用户根据自己的喜好浏览自己喜欢的东西。如果他想买土特产,可以去网上买,登录后就可以去购物了。 店内各种土特产都分类详细,很容易找到当地的土特产品。同时,搜索系统可以轻松找到相关的本地产品。同时,买了喜欢的东西后,就可以结账了。通过填写您自己的信息,您可以下订单并完成购物流程。

现在我们要建立一个本地产品的在线销售系统。我们应该管理卖家的本地产品、用户信息、用户的购买记录等基本信息。确保足够的安全。使网上购物系统得以推广,让更多的卖家和购物者认为网上购物系统非常实惠和方便。这是一个非常有用的购物系统



功能模块设计:

表1:功能模块设计图

面向不同用户实现不同功能:

  1. 面向顾客时,顾客可以浏览全部的商品信息,因为对商品进行了分类,所以顾客选择的商品种类更加细化,在完成购物后可以查看订单信息状态。
  2. 面向管理员时:管理员需要对各类商品,用户和订单信息进维护和修改,但是不能修改管理员自己的信息,在用户,商品信息出现差错时及时改正。
  3. 面向供货商时,供货商应只对商品负责,所以可以对商品增添减少,供应量取决于订单量,所以可以查看订单信息。包括自己的信息也可以查看。



(二) 业务流分析


用户界面:


表2:用户流程图

在这里插入图片描述

普通用户:

  1. 浏览商品、按类别查询商品,查看商品的详细信息
  2. 查看购买商品之后的订单信息
  3. 注册成为用户

管理员界面:

表3:管理员流程图

在这里插入图片描述

管理员:

  1. 查看商品信息,判断是否需要补充商品,如果需要补充则通知供应商增删商品
  2. 查看订单信息,判断订单信息和商品库存是否一一对应,如果有误需要修改订单信息
  3. 可根据供应商供给需求修改供应商信息
  4. 修改用户信息

供应商界面:

表4:供应商流程图

在这里插入图片描述

供应商:

  1. 查看商品信息,根据商品数量决定是否供应
  2. 查看订单信息,以核对商品数量

**



(三) 数据流分析

**

表5:数据流图

在这里插入图片描述



(四) 数据字典

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



二、 数据库概念结构设计


(一) 实体分析


经需求分析,本次课程设计中包含五个实体,他们分别是:用户实体、订单实体、管理员实体、商品实体、商品组实体、供应商实体。


(二) 属性分析


用户实体属性:用户编号,姓名,电话,密码,地址

表6:用户实体属性图

在这里插入图片描述

土特产商品实体属性:土特产商品编号,名称,价格,土特产商品组编号

表7:土特产商品实体属性图

在这里插入图片描述

订单实体属性:订单编号,订单日期,价格,用户编号,土特产商品编号

表8:订单实体属性图

在这里插入图片描述

土特产商品组实体属性:土特产商品组编号,土特产商品组名称,管理员编号,供应商编号

表9:土特产商品组实体属性图

在这里插入图片描述

管理员实体属性:管理员编号,管理员姓名,电话,密码,地址

表9:管理员实体属性图

在这里插入图片描述

供应商实体属性:供应商编号,密码,电话,地址,土特产商品组编号,订单编号

表10:供应商实体属性图

在这里插入图片描述


(三) 联系分析


多个供应商可以供应多种商品组,多个用户也可以购买多种商品,多种商品的集合是一个商品组,但是一种商品对应一个订单,用户购买商品产生唯一订单对应唯一的商品。多个管理员管理所有商品组和所有订单和供应商,所以是多对多的关系。


(四) 概念模型设计(CDM图)


表11:CDM图

在这里插入图片描述



三、数据库物理结构设计


(一)概念模型转化为物理模型

  1. 一对一关系的转化

    用户只能查看一项订单,所以用户和订单是一对一关系

    一个商品产生一个订单,所以是一对一关系。
  2. 一对多关系的转化

    一个商品组由多个商品组成,商品组和商品关系是一对多
  3. 多对多关系的转化

    多个管理员管理多种信息

    一个用户可以购买多个商品,一个商品也可以被多个用户购买

    多个供应商供应多种商品组,也可以查看多个订单

    (二)物理逻辑模型设计(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 土特产商品信息表

  1. 对土特产商品组创建视图

    CREATE VIEW 土特产商品组_view

    AS SELECT *

    FROM 土特产商品组信息表

  2. 对订单信息创建视图

    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’供货成功’



五、数据库功能调试


(一) 用户模块

  1. 用户注册

在这里插入图片描述

  1. 查询土特产商品

    在这里插入图片描述

  2. 查看订单信息

    在这里插入图片描述


(二) 供应商模块

  1. 供应商品

在这里插入图片描述

  1. 退还商品

    在这里插入图片描述

  2. 查看订单

    在这里插入图片描述


(三) 管理员模块

  1. 修改用户信息

    在这里插入图片描述

  2. 修改商品信息

    在这里插入图片描述

  3. 修改供应商信息

在这里插入图片描述

  1. 修改订单信息

    在这里插入图片描述

  2. 修改商品组信息

    在这里插入图片描述

六、设计总结

在本次课程设计中,遇到了许多的困难,在技术方面有非常多的困难。比如在powerdesigner的使用上,由于大部分仍是英文,需要学习的东西非常多。在设计cdm时,表与表之间的关系一点要搞清楚,所以在一开始的时候,一点要最全局有个清楚的构思,我在写到后面时,不停的推翻前面的方案,导致图需要修改的很多,这就导致花费了许多的时间。

在用pdm转成数据库时,连接不上数据库,在网上找了许多的方法,仍是不行,可能是缺失某个程序,但是可以转换成sql语句,但是cmd在转换成pdm时会把关系转换成表,原本我以后可以直接使用pdm转换的sql代码,但是会多出许多表,并且没有外键,只有索引,并且索引非常多,是因为太多的表造成的,所以最后我自己创建表设立主外键。

在插入数据时,因为如果没有主键内容,插入外键信息会报错,只能将外键删除再重新插入,

在功能实现上仍有不足,所有的主键信息都无法修改,也不能置空,所以在修改别的信息时如果牵扯到主键的修改就无法修改。

总体说来,在这次一个学期的课程设计中,我学到了很多在课堂内学不到的知识。整个开发的过程对我来说是一次能力真正提高的过程;是将以前所学知识充分利用的过程;是一次将理论应用于实践的过程。我觉得这次课程设计是一次很有收获的实践.



版权声明:本文为kb1122333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。