-
-
- 数据库设计简要介绍
-
在前面实体类设计完成之后,其实数据库的设计已经变得简单了,数据库表就是前面实体类的成员变量的对应,这里设计了6张表,分别是:
- user 用户表
- admin 管理员表
- category 商品类别表
- product 商品表
- salesorder 订单表
- salesitem 订单购物项表
这六张表其实分别对应了6个不同的实体类,User、Admin、Category、Product、Order和OrderItem。其中product表将category表的id字段作为外键,salesitem表将salesorder表的id字段作为外键。
下面就具体介绍每张表的具体设计。
-
-
- 数据库具体设计
- user表
- 数据库具体设计
-
user表是用来存放商城会员的信息的表,有7个字段,分别用来存放用户id、用户名、密码、联系电话、送货地址、Email和注册日期,它又和User实体类的成员变量对应,详见表4-1。
表4-1 user表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
id | Int(11) | YES | NO | 用户id | |
username | varchar(40) | YES | 用户名 | ||
password | varchar(20) | YES | 密码 | ||
phone | varchar(40) | YES | 联系电话 | ||
addr | varchar(255) | YES | 送货地址 | ||
| varchar(50) | YES | 电子邮箱 | ||
rdate | datetime | YES | 注册日期 |
-
-
-
- admin表
-
-
admin表用来存放管理员的用户名和密码,有2个字段,分别用来存放管理员的用户名和密码,它和Admin实体类对应。具体请见表4-2。
表4-2 admin表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
username | varchar(20) | YES | NO | 用户名 | |
password | varchar(40) | YES | 密码 |
-
-
-
- category表
-
-
category表用来存放商品类别的信息,有6个字段,分别用来存放商品类别的id、其父类别的id、类别的名称、类别的描述、类别的级别和类别是否为叶子节点,详见表4-3。
表4-3 category表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
id | Int(11) | YES | NO | 类别id | |
pid | Int(11) | YES | 父类别id | ||
name | varchar(255) | YES | 类别名称 | ||
descr | varchar(255) | YES | 类别描述 | ||
grade | Int(2) | YES | 级别 | ||
isleaf | Int(1) | YES | 是否为叶子 |
-
-
-
- product表
-
-
product表用来保存商品的信息,有9个字段,分别用来保存商品的id、商品的名称、品牌、描述、市场价格、会员价格、上架日期、类别id和图片文件名,详见表4-4。
表4-4 product表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
id | Int(11) | YES | NO | 商品id | |
name | varchar(255) | YES | 商品名称 | ||
brand | varchar(255) | YES | 品牌 | ||
descr | varchar(255) | YES | 描述 | ||
normalprice | double | YES | 市场价格 | ||
memberprice | double | YES | 会员价格 | ||
pdate | datetime | YES | 上架日期 | ||
categoryid | Int(11) | NO | category.id | 商品类别id | |
filename | varchar(255) | YES | 图片文件名 |
-
-
-
- salesorder表
-
-
salesorder表用来存放订单的主信息,有5个字段,分别用来存放订单的id、用户id、送货地址、下单日期和订单状态,当然它会有一个从表,来存放具体的购物信息。详见表4-5。
表4-5 salesorder表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
id | Int(11) | YES | NO | 订单id | |
userid | Int(11) | YES | user.id | 用户id | |
addr | varchar(255) | YES | 送货地址 | ||
odate | datetime | YES | 下单日期 | ||
status | Int(1) | YES | 订单状态 |
-
-
-
- salesitem表
-
-
salesitem表用来存放具体的订单项,有5个字段,分别用来存放订单项id、商品id、单价、数量和所属订单id,详见表4-6。
表4-6 salesitem表
字段名 | 字段类型 | 是否为主键 | 是否可为空 | 外键 | 描述 |
id | Int(11) | YES | NO | 订单项id | |
productid | Int(11) | NO | product.id | 商品id | |
unitprice | double | YES | 单价 | ||
pcount | Int(11) | YES | 数量 | ||
orderid | Int(11) | NO | salesorder.id | 所属订单id |
-
- 本章小结
本章非常详细的介绍了网上商城系统的具体设计,从开发工具的选择和环境的搭建,到基础的共用类,到具体的实体类再到数据库的设计。这样就完成了项目具体框架的搭建。