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

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

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

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. hadoop实战–搭建eclipse开发环境及编写Hello World

    原创文章,转载请注明: 转载自工学1号馆 欢迎关注我的个人博客:www.wuyudong.com, 更多云计算与大数据的精彩文章 1.在eclise中安装hadoop的插件并配置 在上篇文章<编 ...

  2. android 学习运用海马模拟器教程与android环境的搭建

    第三方海马玩模拟器 第一天的学习android采用的模拟器是海马,因此就分享给大家海马模拟器的相关步骤: 海马玩模拟器官网: http://droid4x.haimawan.com 下载相关平台的模拟 ...

  3. android:descendantFocusability=”blocksDescendants”的用法

    android:descendantFocusability用法简析 开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承B ...

  4. Masonry第三方代码约束

    #import "RootViewController.h" #import "Masonry.h" @interface RootViewController ...

  5. JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

    一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...

  6. iOS多线程邂逅

    .线程之间的通信 //有一个特别耗时的操作,比如说网络请求,开启子线程去请求网络,我们一般是要在主线程更新UI,如何从子线程跳转到主线程? #import "ViewController.h ...

  7. 输入 cc -c 指令出现问题

    mac 命令行里 编译 链接 出现xcrun: error: active developer path mac cc 编译出现 xcrun: error: active developer path ...

  8. 用C#实现RSS的生成和解析,支持RSS2.0和Atom格式

    RSS已经非常流行了,几乎所有有点名气的和没名气的网站都有提供RSS服务. 本文详细教你什么是RSS,如是在.Net中使用RSS. 1.那么什么是RSS呢? RSS是一种消息来源格式规范,用以发布经常 ...

  9. MongoDB学习笔记——数据库安装及配置

    MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装 ...

  10. saltstack通过salt.client执行命令(转)

    利用saltstack的salt.client模块可以在python的命令行下或者python脚本里执行相应的salt命令 master端想要执行类似 salt '*' cmd.run 'uptime ...