[TOC]
## 步骤 1 : 表关系图
在这张表关系图上,列出了模仿天猫整站一共需要用到的9张表,以及表之间的关系。接下来,对每张表做介绍,并讲解表与表之间的关系。
![](https://box.kancloud.cn/d427a8c28e0cf5b2b629097796ce528d_783x514.png)
## 步骤 2 : 正确的分析表与表之间的关系的方法
表与表之间的关系,基本上是3种
一对一
一对多
多对一
那么怎么判断关系到底是什么呢?
以分类和产品为例子,分类表里有多条数据,产品表里也有多条数据,那么他们的关系是多对多吗? 从经验上讲,我们知道这个结果是不正确的。
正确的分析表与表之间的关系的方法是这样:
**一个分类对应 多个 产品**
**一个产品对应 一个 分类**
所以分类和产品之间的关系是一对多
![](https://box.kancloud.cn/348fad54015048f52add24312eb87caf_554x257.png)
拓展资料:
1. 一对一关系是指关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关。
> 举例:班级与班长之间的联系:一个班级只有一个正班长;一个班长只在一个班中任职。
2. 一对多关系是关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二
个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。
> 举例:班级与学生之间的联系:一个班级中有若干名学生;每个学生只在一个班级中学习。
3. 多对多关系是关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。
> 举例:课程与学生之间的联系:一门课程同时有若干个学生选修;一个学生可以同时选修多门课程。
## 步骤 3 : 表关系
从最上面的表关系图中可以看到,有关系的表之间,都是一对多关系(反过来就是多对一关系),并没有一对一关系,和多对多关系。
所以本表列出了所有的一对多关系
> 注:产品和用户之间其实是多对多关系,即一个用户可以购买多种产品,一种产品可以被多个用户购买。 但是他们的多对多关系是间接的建立在订单项表(OrderItem)上的。
| 一 | 多 |
| --- | --- |
|Category-分类| Product-产品|
|Category-分类| Property-属性|
|Property-属性| PropertyValue-属性值|
|Product-产品| PropertyValue-属性值|
|Product-产品 |ProductImage-产品图片|
|Product-产品| Review-评价|
|User-用户 |Order-订单|
|Product-产品 |OrderItem-订单项|
|User-用户 |OrderItem-订单项|
|Order-订单| OrderItem-订单项|
|User-用户 |Review-评价|
- 项目简介
- 功能一览
- 前台
- 后台
- 开发流程
- 需求分析-展示
- 首页
- 产品页
- 分类页
- 搜索结果页
- 购物车查看页
- 结算页
- 确认支付页
- 支付成功页
- 我的订单页
- 确认收货页
- 评价页
- 页头信息展示
- 需求分析-交互
- 分类页排序
- 立即购买
- 加入购物车
- 调整订单项数量
- 删除订单项
- 生成订单
- 订单页功能
- 确认付款
- 确认收货
- 提交评价信息
- 登录
- 注册
- 退出
- 搜索
- 前台需求列表
- 需求分析后台
- 分类管理
- 属性管理
- 产品管理
- 产品图片管理
- 产品属性设置
- 用户管理
- 订单管理
- 后台需求列表
- 表结构设计
- 数据建模
- 表与表之间的关系
- 实体类设计
- DAO类设计
- 工具类
- CategoryDao设计
- Service业务类设计
- 后台-分类管理
- 可运行的项目
- 静态资源
- FILTER配合SERVLET
- JSP包含关系
- 查询
- 分页
- 增加
- 删除
- 编辑
- 修改
- 后台其他管理
- 属性管理
- 产品管理
- 产品图片管理
- 产品属性值设置
- 用户管理
- 订单管理