iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Modern Web

MySQL,我的超人系列 第 7

Day7-教你從資料表中插入數據-分級插入、資料庫規劃、商業邏輯

  • 分享至 

  • xImage
  •  

分級插入

蟹老闆架設一個蝦x商城,餐廳資料庫使用MySQL,販售美味蟹堡套餐,一個套餐包含蟹堡、薯條、飲料,無天良的蟹阿金要求紀錄訂單資料,此外龜毛的他還要求每筆訂單都要包含以下資訊。

流水號顧客大名日期顧客評論商品編號數量單價
https://ithelp.ithome.com.tw/upload/images/20220921/201448654yLVCNAnaY.jpg

如何規劃資料庫

厭世打工仔-章魚哥

https://ithelp.ithome.com.tw/upload/images/20220921/20144865X1vQnyEKTp.jpg
蟹堡、薯條、飲料商品編號1、2、3
章魚哥:就全部塞到同一張表就行了
https://ithelp.ithome.com.tw/upload/images/20220921/20144865fKJhj3Ktw3.jpg
蟹老闆:好,那今天蟹堡要漲價,套餐要新增炸海草4,去掉比較貴的薯條2,顧客評論如果是負評就全部刪掉
章魚哥:不管你要我做什麼工作,我都不會做的
由上方的圖可以看出,資料耦合嚴重,欄位設計不合理,一旦要更動特定數據,操作起來相當繁複

有為青年-海綿寶寶

https://ithelp.ithome.com.tw/upload/images/20220921/20144865sSgXDct0Fg.png
海綿寶寶:拆分成訂單、商品銷貨明細兩張表
1.訂單包含流水號顧客大名日期顧客評論
https://ithelp.ithome.com.tw/upload/images/20220921/20144865UfuZNWh7G0.jpg
2.商品銷貨明細包含,訂單編號商品編號數量單價
https://ithelp.ithome.com.tw/upload/images/20220921/20144865SmeIBoDSto.jpg

插入分级資料

1.從下訂單的商業邏輯可以看出,假設派大星下一筆訂單,訂單表必須新增一筆資料,商品銷貨明細則必須新增3筆資料
(蟹堡1、薯條1、飲料1)
2.接下來就可以來寫插入分級資料的SQL語句

INSERT INTO spongebob_order (order_id, name, order_date,comments)
VALUES (default, 'patrickStar','2019-01-01', 'good');
INSERT INTO spongebob_order_items 
VALUES 
    (default, 1, 10, 10),
    (default, 2, 10, 10),
    (default, 3, 10, 10);

1.訂單
https://ithelp.ithome.com.tw/upload/images/20220921/20144865XKiGpebWXR.jpg
2.商品銷貨明細
https://ithelp.ithome.com.tw/upload/images/20220921/20144865a8XPAaQrUS.jpg

預告

Day8-談談SQL的執行順序與部分核心觀念(番外篇)

閒聊

寫這篇文章時,想起自己的表弟(國一)很喜歡海綿寶寶,索性就把這篇文章傳給他看,並半開玩笑地問他看不看得懂,沒想到他竟然回我他都讀懂了,現在的小孩真厲害。


上一篇
Day6-教你從資料表中插入數據-單行、多行
下一篇
Day8-淺談SQL的執行順序與部分核心觀念(番外篇)
系列文
MySQL,我的超人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言