how2j.cn

步骤 1 : 表关系图   
步骤 2 : 表   
步骤 3 : 正确的分析表与表之间的关系的方法   
步骤 4 : 表关系   

完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
在这张表关系图上,列出了模仿天猫整站一共需要用到的9张表,以及表之间的关系。接下来,对每张表做介绍,并讲解表与表之间的关系
表关系图
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
<style> *{ font-size:15px; } table.t2{ border-collapse:collapse; width:100%; } td{ text-align:left; padding-left:10px; background-color:#F5F5DC; } tr.firstline td{ background-color:#F0F8FF; } </style> <table class="t2" border="1" width="99%"> <tr class="firstline"> <td >表名</td> <td >中文含义</td> <td >介绍</td> </tr> <tr> <td >Category</td> <td >分类表 </td> <td >存放分类信息,如女装,平板电视,沙发等 </td> </tr> <tr> <td >Property</td> <td >属性表 </td> <td >存放属性信息,如颜色,重量,品牌,厂商,型号等</td> </tr> <tr> <td >Product</td> <td >产品表 </td> <td >存放产品信息,如LED40EC平板电视机,海尔EC6005热水器</td> </tr> <tr> <td >PropertyValue</td> <td >属性值表 </td> <td >存放属性值信息,如重量是900g,颜色是粉红色</td> </tr> <tr> <td >ProductImage</td> <td >产品图片表 </td> <td >存放产品图片信息,如产品页显示的5个图片</td> </tr> <tr> <td >Review</td> <td >评论表 </td> <td >存放评论信息,如买回来的蜡烛很好用,么么哒 </td> </tr> <tr> <td >User</td> <td >用户表 </td> <td >存放用户信息,如斩手狗,千手小粉红</td> </tr> <tr> <td >Order</td> <td >订单表 </td> <td >存放订单信息,包括邮寄地址,电话号码等信息</td> </tr> <tr> <td >OrderItem</td> <td >订单项表 </td> <td >存放订单项信息,包括购买产品种类,数量等 </td> </tr> </table>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
步骤 3 :

正确的分析表与表之间的关系的方法

edit
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
表与表之间的关系,基本上是3种
一对一
一对多
多对一
那么怎么判断关系到底是什么呢?
以分类和产品为例子,分类表里有多条数据,产品表里也有多条数据,那么他们的关系是多对多吗? 从经验上讲,我们知道这个结果是不正确的。

正确的分析表与表之间的关系的方法是这样:
一个分类对应 多个 产品
一个产品对应 一个 分类

所以分类和产品之间的关系是一对多
正确的分析表与表之间的关系的方法
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
从最上面的表关系图中可以看到,有关系的表之间,都是一对多关系(反过来就是多对一关系),并没有一对一关系,和多对多关系。

所以本表列出了所有的一对多关系

注:产品和用户之间其实是多对多关系,即一个用户可以购买多种产品,一种产品可以被多个用户购买。 但是他们的多对多关系是间接的建立在订单项表(OrderItem)上的。
<style> *{ font-size:15px; } table.t2{ border-collapse:collapse; width:350px; } td{ text-align:left; padding-left:10px; background-color:#F5F5DC; } tr.firstline td{ background-color:#F0F8FF; } </style> <table class="t2" border="1" width="99%"> <tr class="firstline"> <td width="41%" >一</td> <td >多</td> </tr> <tr> <td >Category-分类</td> <td >Product-产品</td> </tr> <tr> <td >Category-分类</td> <td >Property-属性</td> </tr> <tr> <td >Property-属性</td> <td >PropertyValue-属性值</td> </tr> <tr> <td >Product-产品</td> <td >PropertyValue-属性值</td> </tr> <tr> <td >Product-产品</td> <td >ProductImage-产品图片</td> </tr> <tr> <td >Product-产品</td> <td >Review-评价</td> </tr> <tr> <td >User-用户</td> <td >Order-订单</td> </tr> <tr> <td >Product-产品</td> <td >OrderItem-订单项 </td> </tr> <tr> <td >User-用户</td> <td >OrderItem-订单项</td> </tr> <tr> <td >Order-订单</td> <td >OrderItem-订单项</td> </tr> <tr> <td >User-用户</td> <td >User-评价</td> </tr> </table>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2021-07-25 关于系统建表疑问
之旅

1.分类表和属性表感觉其实是多对多关系,属性表和产品表也是多对多关系,为什么这里没有建立属性表和产品表的关系,而是建立分类表和属性表一对多的关系,是不是因为这样建表减少了一点数据量? 2.一个系统中所有的表之间必须都要有关系(直接或者间接关系)吗?




1 个答案

how2j
答案时间:2021-07-27
1. 你可以根据自己理解的多对多进行改造,看看是否在业务上能够支持的了。 2. 不是,是否有关系要根据业务情况来定。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-04-03 关于属性和产品的关系
Lz2848509

为什么属性和产品之间没有关系呢?可不可以给属性设外键与产品关联呢




2 个答案

how2j
答案时间:2020-04-03
恭喜你,领悟正确。

Lz2848509
答案时间:2020-04-03
我好像明白了?是不是这样的话一个属性就只能给一个商品用了



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-02-18 站长 库存表是没有做是吗?可以自己添加吧
2019-09-09 分类表和属性表关系
2019-07-31 属性表和属性值表的关系是什么?属性表不是装有属性值吗?


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 21 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-天猫整站J2EE-表与表关系 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图