mybatis笔记-9、订单商品数据模型

软件开发服务订单工作量评估模型 .xlsx 立即下载

# mybatis学习笔记(9)-订单商品数据模型分析

标签: mybatis


Contents


本文对接下来几篇博客中用到的数据模型进行分析,并附上建表sql文件和测试数据文件

数据模型分析思路

  • 每张表记录的数据内容

:分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程。

  • 每张表重要的字段设置

:非空字段、外键字段

  • 数据库级别表与表之间的关系

:外键关系

  • 表与表之间的业务关系

:在分析表与表之间的业务关系时一定要建立在某个业务意义基础上去分析。

数据模型分析

表的内容:
  • 用户表user:记录了购买商品的用户信息。用户id
  • 订单表orders:记录了用户所创建的订单(购买商品的订单)。订单id,所属用户id
  • 订单明细表orderdetail:记录了订单的详细信息即购买商品的信息。订单id,商品id
  • 商品表items:记录了商品信息

建表的sql语句在后文

----------------------
订单表:orders
number:订单号
user id:外键,用户id
----------------------
订单明细表:orderdetail
orders id:外键,订单id
items id:外键,商品id
----------------------
用户表:user
id:自增逐渐
----------------------
商品表:items

----------------------

从子指向父

订单明细表–order id–>订单表

订单明细表–items id–>商品表

订单表–user id–>用户表

表与表之间的业务关系:

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

  • usre和orders:

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

  • orders和orderdetail:

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

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

  • orderdetail和items:

orderdetail—>itesms:一个订单明细只对应一个商品信息,一对一

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

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

  • orders和items:

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

订单商品数据模型建表sql
/*
SQLyog v10.2 
MySQL - 5.1.72-community : Database - mybatis
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*Table structure for table `items` */

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;

/*Table structure for table `orderdetail` */

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;

/*Table structure for table `orders` */

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;

/*Table structure for table `user` */

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;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

测试数据sql
/*
SQLyog v10.2 
MySQL - 5.1.72-community : Database - mybatis
*********************************************************************
*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*Data for the table `items` */

insert  into `items`(`id`,`name`,`price`,`detail`,`pic`,`createtime`) values (1,'台式机',3000.0,'该电脑质量非常好!!!!',NULL,'2015-02-03 13:22:53'),(2,'笔记本',6000.0,'笔记本性能好,质量好!!!!!',NULL,'2015-02-09 13:22:57'),(3,'背包',200.0,'名牌背包,容量大质量好!!!!',NULL,'2015-02-06 13:23:02');

/*Data for the table `orderdetail` */

insert  into `orderdetail`(`id`,`orders_id`,`items_id`,`items_num`) values (1,3,1,1),(2,3,2,3),(3,4,3,4),(4,4,2,3);

/*Data for the table `orders` */

insert  into `orders`(`id`,`user_id`,`number`,`createtime`,`note`) values (3,1,'1000010','2015-02-04 13:22:35',NULL),(4,1,'1000011','2015-02-03 13:22:41',NULL),(5,10,'1000012','2015-02-12 16:13:23',NULL);

/*Data for the table `user` */

insert  into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (1,'王五',NULL,'2',NULL),(10,'张三','2014-07-10','1','北京市'),(16,'张小明',NULL,'1','河南郑州'),(22,'陈小明',NULL,'1','河南郑州'),(24,'张三丰',NULL,'1','河南郑州'),(25,'陈小明',NULL,'1','河南郑州'),(26,'王五',NULL,NULL,NULL);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
时间序列预测 — 预测数据集(负荷、风电、光伏、销量等) GEFCom2014 “负荷预测数据”为竞赛的公共数据集,GEFCom2014 的负荷预测轨迹为概率负荷预测。 阅读详情

相关推荐

BCC Python开发教程&常用BCC工具(一)

这个教程主要目的是展示如何使用python来进行bcc工具开发和编程。教程主要分为两个部分:可观察性和网络。文中的代码片段均都来自于bcc:代码片段的licenses见bcc中具体文件。也可参考bcc开发者手册以及end-users工具教程:。此外bcc还开放有lua接口。

hudongliang2006nb的专栏 2084

mysql订单表设计

请注意,在设计数据库时,确保字段的命名具有描述性且遵循命名规范,以便其他开发人员能够轻松理解字段的用途。此外,合理设置索引(如主键和外键)可以提高查询性能并维护数据完整性。设计MySQL中的订单表时,表名和字段的选择应基于您的业务需求和数据库设计原则。这些字段是基于常见的订单管理需求设计的。根据您的具体业务需求,您可能还需要添加其他字段或调整现有字段。

得塔云的博客 3962

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 714

mybatis学习笔记(9)-订单商品数据模型分析

本文对接下来几篇博客中用到的数据模型进行分析,并附上建表sql文件和测试数据文件

brianway 6634

乐鑫WIFI芯片开发流程梳理-工具链、编译和下载

最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不在赘述。 1. 开发方案选择 目前网上有两套较为成熟的方案: (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espress...

一名嵌入式软件工程师的自我成长 3925

保姆级教程:在紫光同创Titan2 FPGA上实现PCIe DMA,实测带宽接近理论极限

本文详细介绍了在紫光同创Titan2 FPGA上实现PCIe DMA性能调优的全过程,通过参数优化和架构设计,实测带宽达到6.91GB/s,接近理论极限。涵盖开发环境搭建、PCIe IP核定制、DMA引擎设计、驱动开发及性能调优等关键步骤,为FPGA开发者提供实用指南。

weixin_30954817的博客 334

jdbc编程问题总结

创建mysql数据库-- ---------------------------- -- Table structure for `orders` -- ---------------------------- DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT,

zghgchao 228

CMake教程:C++ CMake自定义find_package并在其它项目使用

find_package 是 CMake 中一个非常重要的命令,用于在系统中找到外部库或包,并将其包含到项目中。: 要查找的包的名称。[version]: 可选的版本号。如果指定了版本号,CMake 会尝试找到该版本或更高版本的包。[REQUIRED]: 如果指定了这个关键字,找不到包时会产生一个错误并终止配置过程。: 指定要查找的包的组件。: 指定可选的组件,即使找不到这些组件,配置过程也会继续。: 指定查找包的模式,CONFIG表示查找配置文件,MODULE表示查找模块文件。

琅嬛福地 1560

探索Godot引擎的新利器:TrenchBroom Loader

探索Godot引擎的新利器:TrenchBroom Loader 项目介绍 在Godot引擎的生态系统中,地图编辑器的选择一直是一个热门话题。TrenchBroom Loader for Godot(以下简称TBLoader)作为一款新兴的开源项目,旨在为Godot开发者提供一个高效、灵活的地图加载解决方案。TBLoader并非从零开始,而是基于Qodot项目的核心代码进行重构和优化,特别针对Go...

gitblog_00060的博客 538

25、BDS-3卫星信号性能与PPP-B2b增强消息完整性分析

本文对BDS-3卫星信号性能及PPP-B2b增强消息的完整性进行了系统分析。评估了MEO、IGSO和GEO卫星的轨道与时钟精度,得出BDS-3总体SISRE为0.25 m,系统完整性可覆盖99.999%的误差。分析表明SIS中断主要由时钟调整和轨道机动引起,个别卫星存在因境外监测受限导致的非计划中断。通过自研解码软件对PPP-B2b增强消息进行采集与解析,实验结果显示BDS-3和GPS的平均历元完整性率均高于98.55%,其中卫星掩码和时钟校正消息的完整性率超过99.8%。研究还发现IGSO卫星相比MEO卫

quiet的专栏 143

matlab 一维相位解缠

一维相位解缠算法的matlab代码实现。

点云侠的博客 372

电商平台数据仓库建模案例

阿里巴巴大数据之路》是一本分享阿里巴巴如何搭建和优化其数据体系的书,其中提到很多与电商平台数据仓库建模相关的实践经验。这个案例展示了如何结合业务需求构建一个电商平台的数据仓库模型,并提供了实际的分析场景。目标是构建一个支持多维分析的数仓,帮助业务分析人员通过数据了解用户行为、商品销售情况、市场趋势等。分析用户在电商平台的典型行为路径,比如“浏览->加购->下单->支付”,计算转化率。通过用户行为和订单信息,生成用户消费偏好的画像(如偏好的商品分类、平均客单价)。统计每个分类下的热销商品及其销售额排名。

z1941563559的博客 1382

一文读懂 SAP BTP Application Router 的 Resource Files:从 xs-app.json 到本地开发的默认设置

本文详解SAP BTP中Application Router的资源文件配置与本地开发实践。核心包括:xs-app.json定义路由规则与安全策略,package.json声明依赖与启动脚本,resources/存放静态资源,default-services.json和local-destinations.json用于本地模拟云服务。文章通过真实案例展示如何配置静态资源直出、反向代理后端服务,并强调本地开发时的注意事项与常见问题解决路径。关键配置均提供示例代码,帮助开发者快速实现业务应用的部署与联调。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 176

【MyBatis】订单商品数据模型分析

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

Robin的博客 1648

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MyBatis学习笔记——11订单商品数据模型分析

MyBatis学习笔记——11订单商品数据模型分析 完整学习路线:https://blog.youkuaiyun.com/qq_40163148/article/details/89668242 今天我们来分析分析我们的订单商品数据模型 1.表结构 userdb(用户表) orderdb(订单表) orderdetial(订单明细表) commodity(商品表) 2.分析关系以及外键(我们从用户出发...

qq_40163148的博客 854

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

订单商品数据模型一对一查询映射(resultMap与resultType)两种方法实现

订单商品数据模型 1.数据模型分析思路 1.每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程 2.每张表重要的字段 非空字段,外键字段 3.数据库级别表与表之间的关系 外键关系 4.表与表之间的业务关系 在分析表与表之间的业务关系时一定要建立 在某个业务意义基础上去分析 所需的表 用户表user 记录了购买商品的用户 订单表orders 记录了用户所创建的订单 订单明细表orderdetail 记录了订单的详细信息即购买商品信息 商品表items 记录了商

weixin_46055386的博客 888

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

167

【Mybatis从0到1-009】订单商品模型数据分析

对于整个mybatis学习过程中所使用的数据库,早在【开篇】 中就有提及数据库的建立,主要数据表如下: 四个数据表,分别是用户表:user,订单表:orders,订单明细表:orderdetail,商品表:items。 本章主要对订单商品的数据模型进行分析,这将会是后续内容的基础。 【1】数据模型分析思路 1、每张表记录的数据内容          分模块对每张表记录的内容进

Chanson 547

mybatis之用户订单商品数据模型分析(九)

这篇文章是对订单商品数据模型进行分析,共有四张表(用户表、订单表、订单明细表、商品表)。这篇文章是后续学习的基础,因为后面的学习要针对这个数据模型进行一对一,一对多,多对多进行查询。我们以后会碰到各种各样的数据模型,有些数据模型可能有上百张表,但是数据模型的分析思路都是一样的。所以这篇文章重点在于去掌握数据模型的分析思路。数据模型分析 1、 明确每张表存储的信息   例如:分析

liu911025的博客 6085

Mybatis学习笔记(十)【订单商品数据模型分析】

Contents 数据模型分析思路 数据模型分析 订单商品数据模型建表sql 本文对接下来几篇博客中用到的数据模型进行分析,并附上建表sql文件和测试数据文件 数据模型分析思路 每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程。 每张表重要的字段设置 非空字段、外键字段 数据库级别表与表之间的关系 外键关系 表与表

极客神殿 958

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

我们接下来要对即将用来实验的订单商品数据模型进行分析。 首先在MySql中创建mybatis数据库,在其中创建以下表: CREATE TABLE `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL COMMENT '商品名称', `price` float(10,1) NOT N

程序猿之洞 3302

学习Mybatis框架(五)—高级映射(多表关联查询)

本节主要对订单商品数据模型进行分析。并分析以下2个点: 高级映射:(了解) 实现一对一查询、一对多、多对多查询。 延迟加载 查询缓存 一级缓存 二级缓存(了解mybatis二级缓存使用场景) 一、高级映射 订单商品数据模型 1.1 数据模型分析思路 1、每张表记录的数据内容 2、每张表重要的字段设置(非空字段、外键字段) 3、数据...

洞玄之境的博客 3万+

19Mybatis_订单商品数据模型分析

这篇文章是对订单商品数据模型进行分析(会给出分析思路),有四张表。这篇文章是后续文章的基础,因为后续的文章要针对这个数据模型(四张表)进行一对一,一对多,多对多进行查询。   我们以后会碰到各种各样的数据模型,有些数据模型可能有上百张表,但是数据模型的分析思路都是一样的。所以这篇文章重点在于去掌握数据模型的分析思路。 我们先给出数据模型分析的思路: 1、每张表记录的数据内容       ...

weixin_34245749的博客 435

Mybatis商品订单的五表联查

Mybatis的商品订单的五表联合查询,从订单的角度查看所有的订单,套娃模式和一条SQL解决模式,和从用户角度查看所有信息的套娃模式。

qq_48578877的博客 1103
上一篇: mybatis笔记-8、动态sql
下一篇: 请求响应编码问题一文全解决
hancoder
博客等级 码龄9年 4135粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值