我们接下来要对即将用来实验的订单商品数据模型进行分析。

首先在MySql中创建mybatis数据库,在其中创建以下表:

[sql] view plaincopy
  1. CREATE TABLE `items` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(32) NOT NULL COMMENT '商品名称',
  4. `price` float(10,1) NOT NULL COMMENT '商品定价',
  5. `detail` text COMMENT '商品描述',
  6. `pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
  7. `createtime` datetime NOT NULL COMMENT '生产日期',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
  10. CREATE TABLE `orderdetail` (
  11. `id` int(11) NOT NULL AUTO_INCREMENT,
  12. `orders_id` int(11) NOT NULL COMMENT '订单id',
  13. `items_id` int(11) NOT NULL COMMENT '商品id',
  14. `items_num` int(11) DEFAULT NULL COMMENT '商品购买数量',
  15. PRIMARY KEY (`id`),
  16. KEY `FK_orderdetail_1` (`orders_id`),
  17. KEY `FK_orderdetail_2` (`items_id`),
  18. CONSTRAINT `FK_orderdetail_1` FOREIGN KEY (`orders_id`) REFERENCES `orders` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  19. CONSTRAINT `FK_orderdetail_2` FOREIGN KEY (`items_id`) REFERENCES `items` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
  20. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
  21. CREATE TABLE `orders` (
  22. `id` int(11) NOT NULL AUTO_INCREMENT,
  23. `user_id` int(11) NOT NULL COMMENT '下单用户id',
  24. `number` varchar(32) NOT NULL COMMENT '订单号',
  25. `createtime` datetime NOT NULL COMMENT '创建订单时间',
  26. `note` varchar(100) DEFAULT NULL COMMENT '备注',
  27. PRIMARY KEY (`id`),
  28. KEY `FK_orders_1` (`user_id`),
  29. CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
  30. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
  31. CREATE TABLE `user` (
  32. `id` int(11) NOT NULL AUTO_INCREMENT,
  33. `username` varchar(32) NOT NULL COMMENT '用户名称',
  34. `birthday` date DEFAULT NULL COMMENT '生日',
  35. `sex` char(1) DEFAULT NULL COMMENT '性别',
  36. `address` varchar(256) DEFAULT NULL COMMENT '地址',
  37. PRIMARY KEY (`id`)
  38. ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

1.1数据模型分析思路
1、每张表记录的数据内容
分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程。
2、每张表重要的字段设置
非空字段、外键字段
3、数据库级别表与表之间的关系
外键关系
4、表与表之间的业务关系
在分析表与表之间的业务关系时一定要建立 在某个业务意义基础上去分析。

1.2数据模型分析

模型关系图如图

用户表user:
记录了购买商品的用户信息

订单表:orders
记录了用户所创建的订单(购买商品的订单)

订单明细表:orderdetail:
记录了订单的详细信息即购买商品的信息

商品表:items
记录了商品信息

表与表之间的业务关系:
在分析表与表之间的业务关系时需要建立 在某个业务意义基础上去分析。
先分析数据级别之间有关系的表之间的业务关系:

usre和orders:
user---->orders:一个用户可以创建多个订单,一对多
orders--->user:一个订单只由一个用户创建,一对一

orders和orderdetail:
orders---》orderdetail:一个订单可以包括 多个订单明细,因为一个订单可以购买多个商品,每个商品的购买信息在orderdetail记录,一对多关系

orderdetail--> orders:一个订单明细只能包括在一个订单中,一对一

orderdetail和itesm:
orderdetail---》itesms:一个订单明细只对应一个商品信息,一对一

items--> orderdetail:一个商品可以包括在多个订单明细 ,一对多

再分析数据库级别没有关系的表之间是否有业务关系:
orders和items:

orders和items之间可以通过orderdetail表建立关系。

下面几篇总结将以这个数据模型为基础进行测试

【MyBatis框架】订单商品数据模型-分析思路相关推荐

  1. 【MyBatis框架】高级映射-一对一查询

    一对一查询 根据上面我们分析的订单商品数据模型(链接:12.订单商品数据模型-分析思路.txt),我们来写一下有关一对一的查询,分别使用了resultType和resultMap指定输出参数类型 1. ...

  2. Mybatis框架(复杂动态SQL),一对一,一对多,多对多

    复合条件查询(动态SQL) MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦.例如拼接时要确保不能忘记 ...

  3. Mybatis执行流程分析_自定义简易Mybatis框架

    自定义简易Mybatis框架 Mybatis执行流程分析 Mybatis代码编写流程: Mybatis配置文件加载过程: 需求分析及技术概述 根据上述的功能结构图, 得出如下需求: 1. 需要具有配置 ...

  4. 订单,用户,商品关联分析记录

    最近有做采购平台 订单,用户,商品关联分析 的任务 目的在于希望能产出  商品推荐商品或者 商品 推荐给用户  的数据 主要采用python的apriori  进行关联分析 样例代码如下 大概如下: ...

  5. Mybatis框架下SQL注入审计分析

    前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少.新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手, ...

  6. Java框架tk_TKmybatis的框架介绍和原理分析及Mybatis新特性

    tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具 实现对员工表的增删改查 ...

  7. MyBatis框架的使用及源码分析(八) MapperMethod

    从 <MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory> 文中,我们知道Mapper,通过MapperProxy ...

  8. 01 mybatis框架

    回顾 jdbc: 1.1 jdbc 操作步骤总结如下: 1. 加载数据库驱动 2. 创建并获取数据库链接 3. 创建 jdbc statement 对象 4. 设置 sql 语句 5. 设置 sql ...

  9. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

最新文章

  1. 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?...
  2. 如何用CSS让一个容器水平垂直居中?
  3. 实施Jersey 2 Spring集成
  4. 机器学习实践四--正则化线性回归 和 偏差vs方差
  5. 没错,你离分布式搜索只差一个Elasticsearch入门!
  6. 【python基础知识】python输出时出错,UnicodeEncodeError: 'gbk' codec can't encode character '\ue4bf.....
  7. 赛锐信息:SAP安全漏洞审计及工具介绍
  8. WIN10常用快捷键(打开资源管理器、显示桌面、截图)
  9. flask + apidoc 生成接口文档(附加一个坑)
  10. mysql date_format格式_mysql date_format 按不同时间单位进行分组统计
  11. 【语音隐写】基于matlab DWT音频数字水印嵌入提取【含Matlab源码 350期】
  12. LaTeX学习:Texlive 2019和TeX studio的安装及使用
  13. 安装 Silverlight 5/silverlight4 出错的解决方法
  14. java泊松分布随机数_泊松分布随机数
  15. 4.2 NI-USRP驱动安装与检测
  16. 3.5.1_2 Maven - pom.xml 添加maven-assembly-plugin(官方标准打包插件)
  17. 第二人生的源码分析(八十四)保存UI的界面布局
  18. C99 designator ‘name’ outside aggregate initializer
  19. 我的世界(9)-服务器地图创建、管理(Multiverse插件)
  20. 零基础能不能学习web前端开发?【爱创课堂专业前端培训】

热门文章

  1. 金蝶k3rpc服务器不可用_金蝶KIS商贸版常见问题这样解决
  2. 刷前端面经笔记(二)
  3. 算法与数据结构1800题 之 栈和队列
  4. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块...
  5. 【转载】stackoverflow 上关于 rebar 的讨论
  6. jqgrid for asp.net 单页全选记录ID
  7. LR运行9415商品拒绝问题
  8. MYSQL数据库与Emoji表情的故事
  9. 「镁客·请讲」Visense Studio冯樑杰:游戏基因的VR视频,最好的表现是真人实拍交互...
  10. A + B Problem II