这篇文章是对订单商品数据模型进行分析(会给出分析思路),有四张表。这篇文章是后续文章的基础,因为后续的文章要针对这个数据模型(四张表)进行一对一,一对多,多对多进行查询。

我们以后会碰到各种各样的数据模型,有些数据模型可能有上百张表,但是数据模型的分析思路都是一样的。所以这篇文章重点在于去掌握数据模型的分析思路。

我们先给出数据模型分析的思路:

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表建立 关系。

数据模型分析图如下:

分析结束;

19Mybatis_订单商品数据模型分析的更多相关文章

  1. mybatis由浅入深day02_课程复习_1订单商品数据模型分析

    mybatis第二天  高级映射 查询缓存 和spring整合 课程复习: mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己去编 ...

  2. 21Mybatis_订单商品数据模型_一对多查询——resultMap方式

    这篇文章延续订单商品数据模型,这张讲述的是一对多的查询.(用resultMap) 给出几张表的内容: User表:

  3. java-mybaits-00501-案例-映射分析-订单商品数据模型

    1.数据模型分析思路 1.每张表记录的数据内容          分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程. 2.每张表重要的字段设置          非空字段.外键 ...

  4. 20Mybatis_订单商品数据模型_一对一查询——resultType和resultMap两种方式以及两种方式的总结

    上一篇文章分析了数据模型,这篇文章就给出一个需求,这个需求是一对一查询,并完成这个需求. ------------------------------------------------------- ...

  5. 23Mybatis_根据订单商品数据模型的练习对resultMap和resulttype的总结

    resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中. 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用re ...

  6. 22Mybatis_订单商品数据模型_多对多查询以及对多对多查询的总结

    之前讲了一对一,一对多查询,这篇文章讲的是多对多. 先给出需求:查询用户及用户购买商品信息. 我们由之前的文章知道,这个需求是多对多的. 还是那个终止我们的mybatis所做的不管是之前的一对一还是一 ...

  7. mybatis入门截图四(订单商品数据模型 一对一,一对多,多对多)

    --------------------------------- 一对一查询 查询订单信息,关联查询创建订单的用户信息 1.高级映射-一对一查询-使用resultType 2.高级映射-一对一查询- ...

  8. mybatis入门截图四(订单商品数据模型-懒加载-缓存)

    <!-- 延迟加载的resultMap --> <resultMap type="cn.itcast.mybatis.po.Orders" id="Or ...

  9. mybatis系列-09-订单商品数据模型

    9.1     数据模型分析思路 1.每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程. 2.每张表重要的字段设置 非空字段.外键字段 3.数据库级别表与 ...

随机推荐

  1. File存储 - 文件存储

    博客地址 http://www.cnblogs.com/mmyblogs/p/6107472.html(转载请保留) 文件存储 文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容 ...

  2. iOS实现(超级猜图)源码

    //首先建立模型文件 QLLQuestion.hheQLLQuestion.m文件 #import <Foundation/Foundation.h> @interface QLLQues ...

  3. MySQL初步笔记,有待整理

     查询表纪录: select * from tb1; 插入一条记录 insert tb1 values(value1,value2,...); 修改表的默认编码: alter table tb1 ch ...

  4. IOS开发关于测试的好的网址资源

    1. 高级自动化单元测试,推荐看LeanCloud 工程师的李智维的自动化单元测试的直播录影李智维的演示github 2.iOS开发-单元测试 这只是一篇简单的ios测试介绍 3.iOS单元测试 来自 ...

  5. 日常工作生活中的做人做事道理[持续更新ing]

    1.凡是预则立,不预则废 2.不能用特殊案例说明事情本身的发展规律 3.任务不能拖,需主动出击,想方设法完成 4.工作要有细致化的沟通和安排 5.解决问题和安排任务可以逆向思维的去想 6.问题要举一反 ...

  6. rowcount和@@Rowcount的区别,获取insert、update、delete影响行数

    rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10select * from 表A 这样的查询只会 ...

  7. DLL分类

    使用def文件简化dll导出 VS查看DLL接口

  8. Java递归实现操作系统文件的复制、粘贴和删除功能

    通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...

  9. java微信接口之四—上传素材

    一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...

  10. radclient安装记录

    下载地址: http://freeradius.org/getting.html 选择:1.1.5版本 wget -c ftp://ftp.freeradius.org/pub/freeradius/ ...