🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[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-评价|