首先在这边感谢一下无私分享公开课的老师,关于mybatis的学习都是进行视频+码代码方式练习,围绕此数据模型完成的代码有想学习的留言我发你,相互学习。这篇文章是对订单商品数据模型进行分析(会给出分析思路),有四张表。这篇文章是后续文章的基础,因为后续的文章要针对这个数据模型(四张表)进行一对一,一对多,多对多进行查询。
我们以后会碰到各种各样的数据模型,有些数据模型可能有上百张表,但是数据模型的分析思路都是一样的。所以这篇文章重点在于去掌握数据模型的分析思路。
我们先给出数据模型分析的思路:
1、每张表记录的数据内容
我们分析表的时候,可以分模块(比如用户管理模块,订单模块等等)对每张表记录的内容进行熟悉,这样就相当于你学习系统需求(功能)的过程。
2、每张表重要的字段设置
每张表中哪些字段是重要的呢:非空字段、外键字段
3、数据库级别表与表之间的关系
外键关系
4、表与表之间的业务关系
在分析表与表之间的业务关系时一定要建立 在某个业务意义基础上去分析。
接下来给出具体案例来分析:
mybatis的数据库下面有四张表如下:
user表:
items:
orders:
ordersdetail:
介绍一下上面每一张表的用途:
user(用户表):记录了购买商品的用户信息。
orders(订单表):记录了用户所创建的订单。(购买商品的订单)
orderdetail(订单明细表):记录了订单的详细信息即购买商品的信息。
items(商品表):记录了商品信息。
好:我们现在开始分析上面四张表:
1.我们先去找到上面四张表中每一张表重要的字段,外键等。
我们经过观察可以知道:
用户表:user
id:自增主键
订单表:orders
number:订单号
user_id(外键,用户id)
订单明细表:orderdetail
orders_id(外键,订单id)
items_id(外键,商品id)
商品表:items
id:自增主键
2.我们再去分析数据库级别有关系的表之间的业务关系。
由上面的主键,外键之间的联系,我们知道user表和orders表,orders表和orderdetail表,orderdetail表和items表有数据库级别的关系
usre和orders:
user---->orders:一个用户可以创建多个订单,一对多
orders--->user:一个订单只由一个用户创建,一对一
orders和orderdetail:
orders---》orderdetail:一个订单可以包括 多个订单明细,因为一个订单可以购买多个商品,每个商品的购买信息在orderdetail记录,一对多关系
orderdetail--> orders:一个订单明细只能包括在一个订单中,一对一
orderdetail和itesm:
orderdetail---》itesms:一个订单明细只对应一个商品信息,一对一
items--> orderdetail:一个商品可以包括在多个订单明细 ,一对多
3.等上面的有数据库级别表分析好孩子后,我们最后再去分析数据库级别没有关系的表与表之间有没有业务关系。
orders和items:
orders和items之间可以通过orderdetail表建立 关系。
数据模型分析图如下: