热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

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

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

 

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

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

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

 

 

数据模型分析图如下:

 

 

 

 

分析结束;

 



推荐阅读
  • SQLSharper 2014 是一款专为 SQL Server Management Studio (SSMS) 设计的功能增强插件,旨在提升 T-SQL 开发者的效率。该插件提供了多种实用工具,包括快速查询数据库对象、详细查看表结构、优化查询结果导出以及自动生成代码等。适用于需要高效管理和开发 SQL 数据库的专业人士。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 本文介绍了实现链表数据结构的方法与技巧,通过定义一个 `MyLinkedList` 类来管理链表节点。该类包含三个主要属性:`first` 用于指向链表的第一个节点,`last` 用于指向链表的最后一个节点,以及 `size` 用于记录链表中节点的数量。此外,还详细探讨了如何通过这些属性高效地进行链表的操作,如插入、删除和查找等。 ... [详细]
  • SSMS 启动故障:错误报告与解决求助 ... [详细]
  • 长期以来,关于临时表与表变量的优劣之争一直存在,部分技术社区甚至认为表变量几乎毫无用武之地,如缺乏统计信息、不支持事务处理等。然而,实际情况并非如此绝对。本文将从多个角度对比分析临时表与表变量,探讨它们在不同场景下的应用优势及其潜在局限性,帮助开发者更好地选择合适的数据结构。 ... [详细]
  • 在DB2数据库的性能调优与设计策略中,物理设计是关键环节。具体包括:1. 容器设计:采用条带化技术、裸设备以及支持并发I/O的配置,以提高数据访问效率。2. 存储方案:建议使用RAID5用于日志存储,以平衡成本和性能;而数据存储则推荐使用RAID10,确保高可靠性和读写性能。3. 系统配置:合理配置系统参数,优化内存管理和缓存策略,进一步提升整体性能。 ... [详细]
  • Android开发技巧:深入探讨数据存储方法
    Android开发技巧:深入探讨数据存储方法 ... [详细]
  • 本文详细介绍了MySQL数据库服务器(mysqld)和客户端(mysql)的区别,并提供了多种启动和关闭MySQL服务器的方法。通过这些方法,您可以更好地管理和维护MySQL数据库。 ... [详细]
  • 在Spring Boot项目中,通过YAML配置文件为静态变量设置值的方法与实践涉及以下几个步骤:首先,创建一个新的配置类。需要注意的是,自动生成的setter方法默认是非静态的,因此需要手动将其修改为静态方法,以确保静态变量能够正确初始化。此外,建议使用`@Value`注解或`@ConfigurationProperties`注解来注入配置属性,以提高代码的可读性和维护性。 ... [详细]
  • 近期,一种被称为“1KB快捷方式病毒”(学名为“VBS病毒”)在我公司内迅速蔓延,给系统安全带来了严重威胁。该病毒通过创建同名的恶意快捷方式文件传播,感染后可能导致文件损坏或丢失。为有效应对这一问题,我们正在采取一系列综合防护措施,包括更新防病毒软件、加强员工安全意识培训以及定期备份重要数据,以降低病毒带来的风险。 ... [详细]
  • 系统级app需要实现静默安装apk的功能,且能兼容各安卓系统版本 废话不多说,直接上代码:Processprocessnull;Buffe ... [详细]
  • NASA全球生态系统动态调查激光雷达(GEDI)
    戈达德太空飞行中心GSFC的LEOB激光与光电部负责建造用于全球生态系统动态调查GEDI激光雷达任务的激光器,将安装在国际空间站ISS的日本实验舱(Ja ... [详细]
  • tabnine 破解_最新在线免费激活2022.07.18
    (tabnine破解)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。Intell ... [详细]
  • **广播接收器是一种用于响应系统范围广播通知的组件。许多广播都是由系统发起的—例如,通知屏幕已关闭、电池电量不足或已拍摄照片的广播应用也可以发起广播—例如,通知其他应用某些数据已下载至设备,并且 ... [详细]
  • 前言在我们的项目里经常会用到ViewPager+Fragment实现选项卡滑动切换的效果,ViewPager会预加载下一个Framgment的内容,这样的机制有优点也有缺点:预加载 ... [详细]
author-avatar
素手红裳000_367
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有