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

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

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

CREATE TABLE `items` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL COMMENT '商品名称',
  `price` float(10,1) NOT NULL COMMENT '商品定价',
  `detail` text COMMENT '商品描述',
  `pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
  `createtime` datetime NOT NULL COMMENT '生产日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

CREATE TABLE `orderdetail` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `orders_id` int(11) NOT NULL COMMENT '订单id',
  `items_id` int(11) NOT NULL COMMENT '商品id',
  `items_num` int(11) DEFAULT NULL COMMENT '商品购买数量',
  PRIMARY KEY (`id`),
  KEY `FK_orderdetail_1` (`orders_id`),
  KEY `FK_orderdetail_2` (`items_id`),
  CONSTRAINT `FK_orderdetail_1` FOREIGN KEY (`orders_id`) REFERENCES `orders` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `FK_orderdetail_2` FOREIGN KEY (`items_id`) REFERENCES `items` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '下单用户id',
  `number` varchar(32) NOT NULL COMMENT '订单号',
  `createtime` datetime NOT NULL COMMENT '创建订单时间',
  `note` varchar(100) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `FK_orders_1` (`user_id`),
  CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) NOT NULL COMMENT '用户名称',
  `birthday` date DEFAULT NULL COMMENT '生日',
  `sex` char(1) DEFAULT NULL COMMENT '性别',
  `address` varchar(256) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`)
) 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表建立关系。

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

转载请注明出处:http://blog.csdn.net/acmman/article/details/46602501

时间: 2024-09-29 18:40:33

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

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

一对一查询 根据上面我们分析的订单商品数据模型(链接:12.订单商品数据模型-分析思路.txt),我们来写一下有关一对一的查询,分别使用了resultType和resultMap指定输出参数类型 1.一对一查询使用resultType指定输出参数类型 1.1需求 查询订单信息,关联查询创建订单的用户信息 1.2resultType 1.2.1sql语句 确定查询的主表:订单表 确定查询的关联表:用户表关联查询使用内链接?还是外链接?由于orders表中有一个外键(user_id),通过外键关联查

销售型网站如何分析 销售型网站分析思路

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 对网站进行分析是我们作为一个网站优化人员必备的能力. 那么如何对一个销售型网站进行网站分析?销售型网站分析要分析那些内容?下面我就结合多年的昆山网站优化经验来总结一下销售型网站到底该如何进行网站分析.首先销售型网站分析主要分为:网站现状分析和竞争对手分析. 我们首先来看网站现状分析.网站现状分析的话主要就是针对销售数据分析,流量来源分析和网站

Java Mybatis框架入门基础教程_基础知识

一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个

【MyBatis框架】SqlMapConfig剖析

下面对SqlMapConfig.xml中的配置进行详细剖析. mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象)environment(环境子属性对象)transactionManager(事务管理)dataSource(数

easyui-struts2+spring+mybatis框架。 进入一个页面时,同时访问三个url会报错。

问题描述 struts2+spring+mybatis框架. 进入一个页面时,同时访问三个url会报错. 解决方案 这个应该是mybatis查询出错吧. 参数集合里面已经包含了count参数? 解决方案二: 这个是sql语句写错了,你把报错中的sql语句粘出来放数据库执行一下看看会不会报错 解决方案三: 你在controller重新写两个方法针对你上面的请求,你在页面刷新之前同时对page.action进行了访问,还传入了不同的查询条件和参数导致的.注意一下的onBeforeLoad:

test- 以下程序运行后的打印结果是______(需要写上分析思路)

问题描述 以下程序运行后的打印结果是______(需要写上分析思路) #include int sum(int a, int b) { return a + b; } int two(int n) { return n * 2; } void test(int n) { printf("%dn", two(n)); } int main() { test( sum(10, 11) ); return 0; } 解决方案 sum(10, 11) 得到21 test输出 two(21),2

spring mvc+mybatis框架使用怎么ajax无刷新批量上传图片?

问题描述 spring mvc+mybatis框架使用怎么ajax无刷新批量上传图片? spring mvc+mybatis框架怎么使用ajax无刷新批量上传图片?上传之后显示,哪位大神能不能给个demo,谢谢! 解决方案 Mvc Ajax 图片上传

mybatis-应用Mybatis框架的同时,能不能再应用JDBC?

问题描述 应用Mybatis框架的同时,能不能再应用JDBC? 如题.请教下各位前辈. 因为做查询使用Mybatis效率太低了,考虑直接用JDBC,能否直接使用呢?怎么使用? 解决方案 mybatis 应用mybatis的应用 解决方案二: 通过SqlSession.getConnection(), 会返回的是一个JDBC连接, 然后就可以按JDBC的方式来写代码了. 不过,如果你愿意尝试下新的数据库访问软件, 可以参考: https://github.com/11039850/monalisa

不知道具体少什么包-第一次用springmvc+myBatis框架,求大神进来帮忙看下缺什么包

问题描述 第一次用springmvc+myBatis框架,求大神进来帮忙看下缺什么包 java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653) at sun.reflect.annotation.AnnotationPa