一、需求分析
1.1 背景
1.2 数据需求
数据需求:
| 数据名称 | 数据类型 | 长度 | 列名 |
|---|---|---|---|
| 会员编号 | 字符型 | 10 | 会员的编号 |
| 姓名 | 文本型 | 20 | 会员的姓名 |
| 密码 | 字符型 | 20 | 会员的密码 |
| 电话 | 文本型 | 12 | 会员的电话 |
| 地址 | 文本型 | 80 | 会员的地址 |
| 商品编号 | 字符型 | 10 | 商品的编号 |
| 商品组编号 | 字符型 | 10 | 商品的类型 |
| 名称 | 文本型 | 20 | 商品的名称 |
| 价格 | 字符型 | 6 | 商品的价格 |
| 商品数量 | 字符型 | 10 | 购买商品的数量 |
| 购物车编号 | 字符型 | 10 | 购物车的编号 |
| 订单编号 | 字符型 | 10 | 购物时生成的编号 |
| 订单日期 | 时间型 | 10 | 购买商品的时间 |
| 最后总价 | 整型 | 6 | 购买商品的总价格 |
| 管理员编号 | 字符型 | 10 | 管理员的编号 |
| 管理员姓名 | 文本型 | 20 | 管理员的姓名 |
| 管理员密码 | 字符型 | 20 | 管理员的密码 |
| 联系电话 | 文本型 | 12 | 管理员的联系电话 |
| 商品组名称 | 文本型 | 20 | 商品组的名称 |
| 描述 | 文本型 | 80 | 商品组的具体描述 |
| 权限编号 | 字符型 | 10 | 权限的编号 |
| 权限名称 | 文本型 | 20 | 权限的名称 |
| 描述 | 文本型 | 80 | 权限具体描述 |
数据结构:
| 数据结构名 | 说明 | 组成 |
|---|---|---|
| 会员 | 记录会员的基本信息 | 会员编号、姓名、密码、电话、地址 |
| 商品 | 记录销售商提供的商品信息 | 商品编号、商品组编号、名称、价格、简介 |
| 订单 | 记录会员的购物信息 | 会员编号、商品编号、订单编号、订单日期、最后总价 |
| 购物车 | 存放会员需要购买的商品 | 会员编号、商品编号、购物车编号、商品数量 |
| 管理员 | 记录管理员的基本信息 | 管理员编号、管理员姓名、密码、联系电话 |
| 商品组 | 记录商品的类型 | 商品组编号、商品组名称、管理员编号、描述 |
| 管理员权限 | 记录管理员的基本信息 | 管理员编号、权限编号 |
| 权限 | 记录本系统的各类权限 | 权限编号、权限名称、描述 |
1.3 事物需求
1.4 数据流程图
二、概念结构设计
2.1 E-R图

2.1.5购物车信息实体E-R图:

2.1.6订单信息实体E-R图:

2.1.7管理员权限信息实体E-R图:

2.1.8权限信息实体E-R图:

2.1.9信息实体E-R图:

三、关系模式
3.2 数据逻辑结构
本站会员注册信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 会员编号 | 字符型 | 10 | 会员的编号 | 主键,非空 |
| 姓名 | 文本型 | 20 | 会员的姓名 | 非空 |
| 密码 | 字符型 | 20 | 会员的密码 | 非空 |
| 电话 | 文本型 | 12 | 会员的电话 | |
| 地址 | 文本型 | 50 | 会员的地址 |
本站商品具体信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 商品编号 | 字符型 | 10 | 商品的编号 | 主键,非空 |
| 商品组编号 | 字符型 | 10 | 商品的类型 | 非空 |
| 名称 | 文本型 | 20 | 商品的名称 | 非空 |
| 价格 | 整型 | 6 | 商品的价格 | 非空 |
| 简介 | 文本型 | 800 | 商品的简介 |
购物车信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 会员编号 | 字符型 | 10 | 会员的编号 | 非空 |
| 商品编号 | 字符型 | 10 | 商品的编号 | 非空 |
| 商品编数量 | 整型 | 10 | 购买商品的数量 | 非空 |
| 购物车编号 | 字符型 | 10 | 购物车的编号 | 主键,非空 |
订单信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 会员编号 | 字符型 | 10 | 会员的编号 | 非空 |
| 商品编号 | 字符型 | 10 | 商品的编号 | 非空 |
| 订单编号 | 字符型 | 10 | 购物时生成的订单 | 主键,非空 |
| 订单日期 | 时间型 | 10 | 购买商品的时间 | 非空 |
| 最后总价 | 整型 | 6 | 购买商品的总价格 | 非空 |
管理员信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 管理员编号 | 字符型 | 10 | 管理员的编号 | 主键,非空 |
| 管理员姓名 | 文本型 | 20 | 管理员的姓名 | 非空 |
| 密码 | 字符型 | 20 | 管理员的密码 | 非空 |
| 联系电话 | 字符型 | 12 | 管理员的联系电话 | 非空 |
商品组信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 商品组编号 | 字符型 | 10 | 商品组的编号 | 主键,非空 |
| 商品组名称 | 文本型 | 20 | 商品组的姓名 | 非空 |
| 管理员编号 | 字符型 | 10 | 管理员的编号 | 非空 |
| 描述 | 文本型 | 50 | 商品的具体情况 |
管理员权限信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 管理员编号 | 字符型 | 10 | 管理员的编号 | 主键,非空 |
| 权限编号 | 字符型 | 10 | 权限的编号 | 非空 |
权限信息表:
| 列名 | 数据类型 | 长度 | 说明 | 是否为空 |
|---|---|---|---|---|
| 权限编号 | 字符型 | 10 | 权限的编号 | 主键,非空 |
| 权限名称 | 文本型 | 20 | 权限的姓名 | 非空 |
| 描述 | 文本型 | 80 | 权限的描述 | 非空 |
四、物理结构设计
4.1 建立一个数据库
建立一个数据库: webshops
4.2 建立八张表
会员注册信息表、商品具体信息表、购物车信息表、订单信息表、管理员信息表、商品组信息表、管理员权限信息表、权限信息表;
4.3 建立表的连接
五、系统功能的实现
5.1 数据库建立
创建数据库:
CREATE DATABASE webshops ON ( NAME = webshops, FILENAME = 'd:\webshops.mdf', SIZE= 10, MAXSIZE= 50, FILEGROWTH= 5 ) LOG ON ( NAME =webshop , FILENAME = 'd:\webshops.ldf', SIZE = 5MB,MAXSIZE = 25MB, FILEGROWTH= 5MB)
5.2 创建立数据表
//会员注册信息表 create table 会员注册信息表( 会员编号 char(10) not null primary key, 姓名 text not null, 密码 char(20) not null, 电话 text null, 地址 text null, ) //商品信息表 create table 商品信息表( 商品编号 char(10) not null, 商品组编号 char(10) not null, 名称 text not null, 价格 int null, 简介 text null, ) //购物车信息表 create table 购物车信息表( 购物车编号 char(10) not null primary key, 会员编号 char(10) not null, 商品编号 char(10) not null, 商品数量 int null, ) //订单信息表 create table 订单信息表( 订单编号 char (10) not null primary key, 会员编号 char (10) not null, 商品编号 char (10) not null, 订单日期 datetime not null, 最后总价 int not null, ) //管理员信息表 create table 管理员信息表( 管理员编号 char(10) not null primary key, 管理员姓名 text not null, 密码 char(20) not null, 联系电话 text null, ) // 商品组信息表 create table 商品组信息表( 商品组编号 char(10) not null primary key, 商品组名称 text not null, 管理员编号 char(10) not null, 描述 text null, ) // 管理员权限信息表 create table 管理员权限信息表( 管理员编号 char(10) not null primary key, 权限编号 char(10) not null, ) //权限信息表 create table 权限信息表( 权限编号 char(10) not null primary key, 权限名称 text null, 描述 text not null, )
5.3 建立表连接
建立各表之间的联系:
alter table 订单信息表 add constraint FK_订单信息表_REFRENCE_会员注册信息表 foreign key (会员编号) references 会员注册信息表(会员编号) alter table 订单信息表 add constraint FK_订单信息表_REFRENCE_商品信息表 foreign key (商品编号) references 商品信息表(商品编号) alter table 购物车信息表 add constraint FK_购物车信息表_REFRENCE_会员注册信息表 foreign key (会员编号) references 会员注册信息表 (会员编号) alter table 购物车信息表 add constraint FK_购物车信息表_REFRENCE_商品信息表 foreign key (商品编号) references 商品信息表(商品编号) alter table 商品组信息表 add constraint FK_商品组信息表_REFRENCE_管理员信息表 foreign key (管理员编号) references 管理员信息表(管理员编号) alter table 商品信息表 add constraint FK_商品信息表_REFRENCE_商品组信息表 foreign key (商品组编号) references 商品组信息表(商品组编号) alter table 管理员权限信息表 add constraint FK_管理员权限信息_REFRENCE_权限信息表 foreign key (权限编号) references 权限信息表(权限编号) alter table 管理员权限信息表 add constraint FK_管理员权限信息_REFRENCE_管理员信息表 foreign key (管理员编号) references 管理员信息表 (管理员编号)
5.4 数据初始
5.4.1 管理員初姶化
添加数据:
insert into 管理员信息表(管理员编号,管理员姓名,密码,联系电话)values ('11001 ' ,'张三','zhangsan ' ,'') insert into 管理员信息表(管理员编号,管理员姓名,密码,联系电话)values ('11002','李四','lisi' ,'') insert into 管理员信息表(管理员编号,管理员姓名,密码,联系电话)values ('11003' ,'王五','wangwu' ,'')
5.4.2添加商品組信息
insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('001','女装','11001','女性') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('002','男装','11002','男性') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('003','童装','11001','儿童') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('004','零食','11002','美食') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('005','苹果','11002','水果') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('006','数码装','11003','国产') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('007','灯品','11003','装饰') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('008','汉服','11001','古风') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('009','卡地亚','11002','珠宝') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('010','欧米茄','11001','名表') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('011','兰蔻','11002','美妆') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('012','阿迪达斯','11002','球具') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('013','普拉达','11003','眼镜') insert into 商品组信息表(商品组编号,商品组名称,管理员编号,描述) values('014','帕克','11003','名笔')
5.4.3 在各商品組加入商品
insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('01001','004','老干妈','10','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('01002','004','方便面','10','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('02001','006','小米','2999','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('02002','006','华为Pro30','2999','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('02003','002','老干妈','10','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('03001','001','波司登','780','来自外国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('03002','001','cercle','1520','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('04001','004','饼干','10','未知') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('05001','005','牛油果','30','来自墨西哥') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('05002','005','车厘子','80','来自美国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('06001','006','窗帘','998','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('07001','002','海澜之家','798','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('08001','003','儿童之家','589','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('010011','004','麻辣烫','20','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('010021','004','陕西馍','10','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('020011','006','OPPO Reno','2999','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('020021','006','一加','2999','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('020031','002','橄榄菜','10','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('030011','010','欧家','780','来自外国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('030021','0010','罗宾尼','1100','来自外国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('040011','004','比利时饼干','30','比利时') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('050011','005','青芒','30','来自越南') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('050021','005','靑椰','80','来自中国') insert into 商品信息表(商品编号,商品组编号,名称,价格,简介)values('060011','006','床帘','998','来自中国')
5.4.4添加注册会員信息
insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09002','李刚','','','南京') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09003','陈明','','','上海') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09004','陈志','','','天津') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09005','张力','','','深圳') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09006','王华','','','广州') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09007','洪溪','','','重庆') insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09008','邓敏','','','成都')
5.4.5添加购物车信息
insert into 购物车信息表(购物车编号,会员编号,商品编号,商品数量)values('','09001','03001',1) insert into 购物车信息表(购物车编号,会员编号,商品编号,商品数量)values('','09002','05001',3) insert into 购物车信息表(购物车编号,会员编号,商品编号,商品数量)values('','09004','06001',2) insert into 购物车信息表(购物车编号,会员编号,商品编号,商品数量)values('','09005','07001',1)
5.4.6 添加枚限信息
insert into 权限信息表(权限编号,权限名称,描述)values('','普通店小二李子','可以添加删除或者修改自己名下的商品信息')
5.4.7 添加管理员权限信息
insert into 管理员权限信息表(管理员编号,权限编号)values('11001','') insert into 管理员权限信息表(管理员编号,权限编号)values('11002','') insert into 管理员权限信息表(管理员编号,权限编号)values('11003','')
5.5 查询
5.5.1 查询本站有哪些种类的商品
//查询所有 商品组的信息 select * from商品组信息表 //查询所有 商品的信息 select * from商品信息表
5.5.2 建立商品视图
CREATE VIEW 商品 AS SELECT 商品编号,商品组编号,名称,价格,简介,描述 FROM 商品组信息表,商品信息表 WHERE a.商品组编号=b.商品组编号
5.5.3 会员注册
某用户可以在系统中注册成为会员,以会员编号“09001”、姓名“李明”、密码“”、电话“”、 地址“北京”为例,注册为会员,在后台需要执行的SQL语句是:
insert into 会员注册信息表(会员编号,姓名,密码,电话,地址)values('09001','李子','','135XXXXXXXX','广州')
5.5.4 会员修改信息
在本系统中注册的会员可以修改自己的信息,例如将会员编号为“09001的会员的密码,电话,地址分别修改为“”,“”,“广东省、珠海市”,
update 会员注册信息表 set 密码='',电话='135XXXXXXXX',地址='广东省、广州市' where 会员编号='09001'
5.5.5 会员查看购物车信息
在本系统中注册的会员可以查看自己的购物车的信息, 例如会员编号为“09002的会,员查看自己的购物车
select * from 购物车信息表 where 会员编号='09002'
5.5.6 会员查看订单信息
在本系统中注册的会员可以查看自己的订单信息,例如会员编号为“09003”的会员查,看自己订单
select * from 订单信息表 where 会员编号='09003'
5.5.7 添加商品信息
管理员可以根据购物者的需求,添加自己管理的商品信息,以便购物者可以买到自己喜欢的商品,例如管理员添加商品编号“06002”、类型“数码”、名称“台灯”、价格“289”、简介“产于广州,可以根据实际需要调节灯的亮度,是学生的好助手,它有利于保护学生的眼睛”的商品。
insert into 商品信息表(商品编号,商品组编号,名称,价格,简介) values('06002','006','智能灯','75','产于美国,大学生智能电灯,可以自动要调节灯的亮度,它有利于学生学习,并且保护学生的眼睛') select * from 商品
5.5.7 删除商品信息
管理员可以删除自己没有盈利的商品的信息,如管理员删除商品编号“04001”的商品
delete from 商品信息表 where 商品编号='04001'
5.5.8 搜索商品信息
会员在本系统中可以根据自己的需要,分类搜索自己所需的商品,例如某会员需查看一个服饰类的商品
select * from 商品 where 商品组名称 LIKE '女装'or 商品组名称 LIKE '男装'
5.5.9 生成订单信息
for insert AS BEGIN UPDATE订单 set最后总价=价格+15 where订单编号IN (SELECT 订单编号 from INSERTED) END
1、首先生成订单视图
CREATE VIEW 订单 AS 会员编号,a.商品编号,最后总价,价格,订单日期 SELECT订单编号 FROM 订单信息表a,商品信息表b WHERE a.商品编号=b.商品编号
2、建立触发器:
CREATE TRIGGER Insert 订单 ON
3、生成订单
insert into 订单信息表(订单编号,会员编号,商品编号,订单日期,最后总价)values('','09001','07001','2019-06- 26 23:09:00',0) insert into 订单信息表(订单编号,会员编号,商品编号,订单日期,最后总价)values('','08001','06001','2019-06-26 :22:00:01',2)
4、查看订单
select * from订单
下载地址:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232216.html原文链接:https://javaforall.net
