天猫整站SSM项目(二)数据库设计
一、数据库设计分析
在需求分析结束之后,接下来要做的不是马上开发功能,而是进行表结构的设计。只有把表结构设计正确了,才能支撑软件后续的功能开发,这一步是非常重要的。
为了便于大家理解表结构设计的过程,把设计过程分解成了
- 数据库的创建
- 表与表关系
- 建表SQL语句
- 表与页面
二、创建数据库
1. 建立数据库
创建数据库:tmall_ssm
并且将数据库的编码设置为utf8,便于存放中文
2. 表与表之间的关系
在这张表关系图上,列出了模仿天猫整站一共需要用到的9张表,以及表之间的关系。接下来,对每张表做介绍,并讲解表与表之间的关系:
图片来源:https://how2j.cn/k/tmall_ssm/tmall_ssm-1430/1430.html
2.1 表![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c60ba71e6e9fef56119d8e7a14ca69c2.png)
2.2 正确的分析表与表之间的关系的方法
表与表之间的关系,基本上是3种
- 一对一
- 一对多
- 多对一
正确的分析表与表之间的关系的方法是这样:
一个分类对应 多个 产品
一个产品对应 一个 分类
所以分类和产品之间的关系是一对多
2.3 表关系
有关系的表之间都是一对多的关系:
3. 建表
在建表过程中,会设置外键约束,所以表和表之间有依赖关系。 因此会先建立被外键指向的表,此表的外键没有连接到其他表,比如User,Category,然后再是其他表。
3.1 用户表
用户表包括有:账号、密码信息,还包括一个自增的键值
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
password varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.2 分类表
分类表包含:类别名称和一个自增的键值
CREATE TABLE category (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.3 属性表
属性表包含:属性名称、外键cid,指向分类表的id字段
CREATE TABLE property (
id int(11