网上商城数据库设计
对用户需求提取相关数据关系,可以得到如下的数据表的 ER 关系图
优惠券
n
拥有
1
地址
n
所在
1
1
客户
1
拥有
1
购物车
m
n
订单
评论
n
m
图片
n
有
11
m
商品
商品 m
m
n
分类
1
商品类别
优惠
供应
n
n
优惠方式
供货商
实体(设计成表)有如下:
1. 用户:用户号、用户名、用户名、电子邮箱、性别、出生日期、积分、qq 号、
电话、用户类型
2. 用户地址:地址号、地址、地址所属用户
3. 商品分类:类型号、类型名、父类型号、类型描述、类型排序
4. 商品:商品号、商品名、类型号、商品描述、库存、上架时间、下架时间、
销售单价、促销价格、促销开始时间、促销结束时间、销售状态、促销状态、
单件商品奖励积分
5. 供货商:供货商号、供货商名、供货商地址、供货商电话
6. 商品与供货者关系:供货商号、商品号
7. 商品图片:图片号、图片路径、上传时间、上传者、商品号
8. 优惠券:优惠劵号、面值、优惠劵开始时间、有效期、
9. 购物车:购物车号、拥有者号(用户号)
10. 购物车明细:购物车号、商品号、商品数量、加入购物车时间
11. 订单:订单号、客户号(用户号)、订货时间、订单状态、订单金额、取消时
间、发货时间、交易完成时间、使用积分
12. 订单明细:订单号、商品号、商品数量、拥有者号(用户号)
13. 评论表:评论号、评论者号(用户号)、商品号、评论内容、评论时间
14. 优惠表:优惠号、优惠名(如积分、优惠券)
15. 优惠与商品关系:优惠号、商品号
16. 订单与优惠券关系:订单号、优惠券号
数据表命名规范:
Table 命名:
用“tb_”标识这是一个数据库表,表名尽量用实体的英文全称,如果一个表
含有多个英文单词,按照 java 变量命名规范即首单词都小写,第二个单词首字
母大写,其余字母小写,如 userAddress.
字段命名:
字段的名称必须是易于理解,能表达字段功能的英文单词全称或缩写英文单
词,命名规范按照 java 变量命名规范即首单词都小写,第二个单词首字母大写,
其余字母小写,如 goodsName.
Timestamp-datatime
1.用户表(tb_user):主要用于用户登录系统
字段
类型(长度)
标识
是否为
主/外键
描述
(或
空
者默
认值)
userId
name
passwd
email
sex
int(11)
Varchar(60)
Varchar(32)
Varchar(60)
VARCHAR(10)
birthday
Timestamp
points
qq
phone
typeId
int(10)
Varchar(20)
Int(11)
Smallint(5)
Y
Y
Y
0
3
N
N
N
N
N
N
N
N
N
N
主
用户编号
用户名
密码
邮箱
性别
出生日期
积分
qq 号
手机号
外
用户类型 Id
2.用户地址表(tb_userAddress):主要用于管理用户的地址
信息
字段
类型(长度) 默认值
是否为
主/外键
描述
(标识)
空
userAddressId
Smallint(5)
Y
address
userId
Varchar(255)
int(11)
N
N
N
主
外
地址
3.商品分类(tb_goodsType):为了便于商品管理,对商品的
类别做了多层分类
字段
类型(长度) 默认值 是否为
主/外键
描述
goodsTypeId
Int
userName
parentId
descp
Varchar(60)
Varchar(60)
Varchar(255)
sortOrder
Tinyint(1)
0
主
外
空
N
N
N
否
类型编号
类型名
父类型
分类描述
该分类在页面
显示的顺序,数
字越大顺序越
靠后,同数
字,id 在前的先
显示
4.商品表(tb_goods):记录商品信息的表单,主要包括商品
名称、价格、上下架时间、库存等信息。
字段
类型(长度) 默认值 是否为
主/外键
描述
主
外
goodsId
Int(11)
goodsName
Varchar(60)
‘’
goodsTypeId
smallint(5)
desc
number
onTime
offTime
Varchar(255)
Smallint(5)
0
0
timestamp
timestamp
shopPrice
Decimal(10,2)
0.00
promotePrice
Decimal(10,2)
0.00
promoteStartTim
timestamp
e
promoteEndTime
timestamp
isOnSale
Tinyint(1)
isPromote
Tinyint(1)
givePoints
Int(11)
0
0
0
空
N
N
N
N
N
N
N
N
N
N
N
N
N
N
商品编号
商品名
商品分类 id
商品描述
库存
商品上架时间
商品下架时间
原价
促销价格
促销开始时间
促销结束时间
(0,1)销售状态
(0,1)促销状态
一件商品销售
成功给的积分
数量
5.商品提供者(tb_provider):主要用于记录商品提供者的信
息。
字段
类型(长度) 默认值 是否为 主/外键
描述
(标识) 空
N
N
providerId
Smallint(5)
name
address
phone
Varchar(60)
Varchar(255)
Int(11)
主
供货商编号
供货商名
供货商地址
供货商电话
6.商品与提供者关系表(tb_goodsProvider):主要用于记录
商品和提供者之间的关系。
字段
类型(长度) 默认值
是否为
主/外键
描述
(标识)
空
goodsProviderId
Smallint(5)
goodsId
int(11)
N
N
主
主
供货者编号
商品编号
7.商品图片(tb_goodsImg):主要用于记录商品对应的多张
图片的存放路径、上传者、上传时间等信息。
字段
类型(长度) 默认值
是否为
主/外键
描述
goodsImgId
Int(11)
Y
N
主
(标识)
空
path
Varchar(255)
uploadTime
timestamp
uploader
goodsId
Varchar(60)
Int(11)
N
N
N
图片编号
图片路径
上传时间
图片上传者
外
图片关联商品
Id
8.优惠劵表(tb_coupon):主要用于优惠券管理,记录各种
优惠券信息的表。
字段
类型(长度) 默认值 是否为
主/外键
描述
couponId
Smallint(5)
Y
value
name
Decimal(10,2)
0.00
Varchar(100)
startTime
timestamp
endTime
timestamp
0
0
空
N
N
N
N
N
主
优惠劵 id
优惠劵面值
优惠编号(名
字)
优惠劵开始时
间
优惠劵结束时
间
userId
int(11)
N
外
所有者 id
9.购物车(tb_shopcart):主要用于购物车的管理。
字段
类型(长度) 默认值 是否为
主/外键
描述
shopcartId
userId
Int(11)
Int(11)
空
N
N
主
外
购物车编号
购物车所有者
编号
10.购物车明细(tb_shopcartGoods):购物车表(tb_shopcart)
的明细记录。
字段
类型(长度) 默认值 是否为
主/外键
描述
shopcartId
goodsId
Int(11)
Int(11)
goodsNumber
Int(11)
addTime
timestamp
主
主
空
N
N
N
N
购物车编号
商品编号
每一件产品的
数量
加入购物车的
时间
11.订单表(tb_order):主要用于订单管理。
字段
类型(长度) 默认值
是否为
主/外键
描述
(标识)
空
Y
N
Int(11)
Int(11)
orderId
userId
status
value
Tinyint(1)
Decimal(10,2)
0.00
usePoints
Int(11)
0(不使
用)
0(不使
用)
couponID
createTime
cancelTime
Int(11)
Int(11)
deliverTime
Int(11)
主
外
订单编号编号
订单拥有者编
号
订单状态
订单原价
使用积分
外
优惠券 ID
订单产生时间
取消时间
发货时间
N
N
N
N
N