数据库原理与应用 第 11 章 · 上机二
课程第 11 章上机二 用户信息登录凭证商品库存收货地址系统订单装订单查回来还差一张拼回台账 版式
第 11 章 数据库设计概述及需求分析 · 上机二

照着数据字典建表

把第 23 页那份数据字典当施工图,五个数据结构建成五张表,再把课件上那张订单装回去查出来。
已完成 0 / 8
本 次 上 机 题 目
  1. 01数据字典的第一行,建成第一张表
  2. 02外码把它挂到用户信息上
  3. 03字典里最长的那一行
  4. 04把订单上那半张脸单独存
  5. 05第五张表,顺手数一数
  6. 06把课件第 13 页那张订单装进去
  7. 07跨表把订单头拼成台账的样子
  8. 08一单买两样,一行装不下
  9. 六张表拼出课件第 13 页那张卡片
01
第 11 章 · 上机二

数据字典的第一行,建成第一张表

登录用户名、密码、找回密码邮箱,字典写几项就建几列。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

数据字典里一个数据结构,到这一步就是一张表。

知道更多

字典里写的是「等」,落到表上要把项定死,这一步就是逻辑结构设计。

02
第 11 章 · 上机二

外码把它挂到用户信息上

凭证是谁的,要指得回去,所以有一个外码。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

字典里「用户名、登录时间等」的用户名,落到表上就是一个外码。

想一想

1 层图上这个存储是哪个处理写出来的?

03
第 11 章 · 上机二

字典里最长的那一行

商品编号、名称、类别、生产厂家、入库时间、概述、库存量、供应商。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

字典最后那项写的是「供应商信息等」,这一步先放一列,第 12 章再拆。

上机做

上机一第 6 题 拆供应商那一题

04
第 11 章 · 上机二

把订单上那半张脸单独存

联系人、性别、快递地址、手机、电子邮箱,一个人可以有好几个地址。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

字典里没写编号,可这五项没一项能当主码,所以自己加一个地址编号。

想一想

同一个人下十次单,地址要存几遍?

05
第 11 章 · 上机二

第五张表,顺手数一数

订单头存这一单的整体情况,收货地址靠外码指过去。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

五张表,正好对上 1 层图上那五个数据存储,一个不多一个不少。

记牢它五个存储五张表

  1. 用户信息与登录凭证
  2. 商品库存
  3. 系统订单
  4. 收货地址
06
第 11 章 · 上机二

把课件第 13 页那张订单装进去

地址先装,商品再装,最后才是订单头。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

被指的表先装,指人的表后装,顺序反了外码会拦下来。

打个比方

像写信,先得有收信地址,才寄得出信。

07
第 11 章 · 上机二

跨表把订单头拼成台账的样子

订单表里只有一个地址编号,联系人得连过去才看得到。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

9 号地址不存在,1452 把这一单拦了,脏数据进不来。

想一想

拆开之后要多做一步连接,值不值?

08
第 11 章 · 上机二

一单买两样,一行装不下

字典里「销售商品」是一项,可它其实是好几行。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

主码是订单编号加商品编号两列,一单一件货只能出现一次。

知道更多

1 层图上没画出这张表,说明数据流图分解到位了,字典还要再推敲一轮。

想一想

一项装不下多行,说明当初哪一步没做够?

第 11 章 · 上机二

六张表拼出课件第 13 页那张卡片

订单头一句,明细一句,最后核一下总计对不对。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一打开就连着服务器了,当前库是 shop,直接敲 SQL 就行。
mysql>

重 点

两个 11424.70 对上了,说明这六张表确实还原得出那张台账。

想一想

总计既然算得出来,还有必要存一列吗?

保山学院·人工智能教研室·曹鼎鼎