MySQL 数据基础:关系、约束与订单查询|课前预习
这一页只有问题,没有答案。先去真实业务里看一眼,再带着技术上想不通的地方来上课。写下自己的初步判断和依据,不必提前学会全部新知识;不确定的地方留到课堂用代码验证。
第一部分|业务观察:订单、商品明细与报表的一行代表什么
先去这几个地方看看
具体怎么看(照着做)
- 阅读有赞订单管理与报表导出手册,观察订单列表、订单详情和报表字段设置的公开截图。
- 区分一张订单共有的信息与每个商品行的信息;记录订单维度和商品维度的报表各以什么为一行,依据不足的字段不补造。
- 按你看到的样子,说清客户、订单、商品、明细、库存这几件事的关系:哪些信息是一笔订单自己的,哪些是这个人一直不变的。用一张草图画出来,并注明哪些是从页面看出来的、哪些还没证实。
只看你自己账号能看到的页面,看到提交订单那一步就停。不用真的买、真的付款,也别去动商家的真订单。截图只留相关字段,把账号、电话、地址、订单号这些个人信息盖掉。
要记下这几点
页面/报表字段分类表+自己的关系草图,注明来源和未知项。
记录时写清六项:平台或资料标题、链接或 App 页面路径、观察日期、实际看到的内容、自己的判断、还要验证什么。可以附一张去掉个人信息的截图,不附也行。进不去的时候就去读上面那份官方说明,注明“这条是看官方文档得到的”;还是没有依据的,就写“没观察到/待验证”,下次再补,别编。
页面上能看到有哪些业务信息,看不到平台内部怎么存这些信息。你这一步整理出来的是业务上的信息分类;怎么把它落成一张张表,是今天课堂要动手做的事。
业务上先想这几个问题
下面几个问题,是帮你把刚才看到的业务现象,转成业务上明确的要求。你自己的判断和推测请单独标注,别当成平台真发生过的事。
- 为什么把客户资料复制到每条订单里,会增加维护风险?
- 统计所有客户的订单数时,没有下单的客户应该消失还是显示零?
这一段只负责把业务说清楚。 上面这些都是业务上真实存在的要求;至于怎么用技术把它们做出来,是下面第二部分「技术预习」和今天课堂要解决的事。
第二部分|技术相关:带着问题寻找解决办法
回看一下上次课你自己的项目和运行记录,先找出跟今天的业务场景有关的输入、处理和输出。下面这些词只是帮你认出课上要解决的问题,不用课前背下来。
技术上先想这几个问题
- Python 的 Decimal、数据库 DECIMAL(10,2) 和页面金额文字怎样衔接?
- 零订单客户为什么在 INNER JOIN 中消失?
- 把输入拼进 SQL 与参数绑定有什么区别?
- MySQL 5.7 与 8.4 的 CHECK 一样有效吗?
写下你的预测、你的理由,还有一个到现在还没想明白的地方。装好环境的同学可以直接用现有代码验证;环境还没弄好的,先安装相关的环境。
上课时要带上这些
- 一份真实、能追到来源的业务观察记录,把“看到的事实”“我的推断”“还没验证的”分开写。
- 一份技术问题的初步判断;动手跑过的,把输入和原始结果一起附上。
- 上完课后对着解答改一改你的判断,写清是哪一步验证让你改了想法。
你写下的业务和技术问题,会在课上对应的知识点里解答,并配合演示核对;按课堂同名机制小节回看,不重复抄写一份标准答案。
带着本人代码补三条预测
本节只给问题,不提供标准答案。
- 先输出一遍商品名,再遍历同一个读取器导出,结果会有几件?
- 第五件坏行在创建读取器时还是读取第五件时出现?
- 五件商品每批两件,最后一件在哪里?