[請益] 商城的訂單資料庫設計
想問問假使我有一個網路商城
使用者甲有可能會在A商店 買了 兩個羽球拍 一顆籃球
使用者乙有可能在A商店 買了 三雙球鞋
那麼我的訂單資料庫設計欄位
是應該要每個商品都要佔據一個列會比較適合嗎
訂單編號 商品名稱 店家名稱 商品數量
A1 羽球拍 A 2
A1 籃球 A 1
A2 球鞋 A 3
我的理解是使用者甲雖然買了兩樣東西,但是這是同一筆訂單,所以訂單編號要相同
我都假設成A1這樣
可是這樣設計的話,萬一使用者甲一次買十樣商品,
那我的資料庫不就要有十列來存
想問這有更好的設計方式嗎?
另外想問另外一個問題是
如果是一般的註冊使用者帳號密碼的表單傳到後端,我知道後端
可以用name來接收
但是如果是購物車
要怎麼樣把使用者 打勾的 羽球拍 籃球
都用json傳到後端
畢竟不同商店都有不同的產品清單
這方面我也不可能去把每一個商店的購物畫面都刻一遍
問題應該很基礎
希望可以得到一些hint
事情有google過
add multiple product into shopping cart
等關鍵字,但好像效果不彰qq
--
1. 看你後續資料使用情境 沒有最好, 只有最適合
2. A商店的羽球拍和B商店的羽球拍 是同一個羽球拍嗎
不一樣,所以我想表格欄位應該從商品名稱改成商品編號,然後店家名稱應該可以刪掉 只是我這樣是不是要新增一個欄位是訂單的主鍵 因為訂單編號會重複,但主鍵不會 訂單的主鍵如果叫id 可能是 1,2,3,4,5,6,7 只是這個主鍵看起來沒有訂單編號有用?
1.傳統來說確實十筆沒錯,不然就是做其他設計,一個表
存key,另一個表做對應
存key 也是一種商品存一個列嗎?不然看起來好像也是買十樣存十列?
2.每個產品都要有key,傳key進後端做區別
訂單 跟 店家 可以再進一步正規化 不過這跟本版有關嗎
這是歷史資料,買了就不可該,最好不要用關聯,因為商
品可以不斷改
待過一個案子是把不需要用來搜的欄位存格式化字串
如 訂單:A1 data:"A,羽球拍,2,A籃球,1"
不過各種方法有好壞,像這樣就是改個資料要字串全覆寫
而且統計時要撈資料需要用的資料在字串內很難撈
訂正:A籃球,1=>A,籃球,1
Order<->OrderDetail<->Product
像前面有人提到的,正規化的部分研究一下
2. 不就把商品資料建起來就好,同上一筆筆建在Product內
ID, 商店名稱,商品代碼,商品中文名/英文名..看你要加啥
就苦功,但是建一次就好。RDBMS看一下啊,這是最基本的
串成字串,再交由後端的字串split api處理也夠完成作
業了,但是真實商城會有各種奇葩商品名稱,可能會讓s
plit無法正常運作。不過這種問題其實應該跟同學討論場
景來做表格設計還有normalization,以後出來混遇到才
會瞭解學生時期設計思慮不周全,然後印象更深刻
如果一個商品很多規格呢?
多一個 shop_id 做複合主鍵就解決了
至於 10 row 的問題只能跟你說,你即使存 json 之類的進
去再在後端解只是徒增維護人員理解的成本
DB 速度慢是要下更好的 SQL 處理
照正規化的概念就是這樣設計吧
建議原po先去看看資料庫正規化
商品很多規格要做商品類型,類型很多層一樣要再分
Class Diagram畫出來不就很清楚了
訂單資料是immutable的&一對多,你要不要用NoSQL來存?
原子性
建議還是看一下正規化比較好
這個我處理過,把訂單資訊存成json,子訂單是object arr
ay
pk設定成訂單編號,你把子訂單拆開存也是可以
但是要設定子訂單編號,不要直接用訂單編號
你的table不是只有存,也要複寫更改,存成json
是最方便的
天貓的資料同步給客戶的table 他們是這麼做的
訂單主檔一筆資料,訂單明細10筆。再去關聯商品
正規化先研究一下= =
34
[情報] UNIQLO網店滿500登記送LP50點UNIQLO網路商店單筆消費滿NT$500登記送 LINE POINTS 50點 (限量前6000名) 一、活動期間 *訂單成立期間:2021/06/18(五)09:00 - 2021/06/24(四)23:59(台灣時間,並以U NIQLO系統時間為準,下同) (訂單成立之時間以UNIQLO系統時間為準,為避免喪失獲得贈品之權益,建議於活動時間開19
Fw: [問題] 蝦皮商城購買三星產品無法登錄作者: balu (balu) 看板: e-shopping 標題: [問題] 蝦皮商城購買三星產品無法登錄 時間: Mon Sep 27 22:05:58 2021 大家好 我在一個月前(8/26)透過蝦皮商城購買了三星平板16
[請益] 欄位或是變數改名這邊想請問各位前輩系統維護上常常遇到的一個問題 就是程式中的變數或是資料表欄位命名的"變更" 我不確定是不是一開始我的設計的想法就錯了 通常我在設計時,會將使用者的操作"畫面"與系統中的命名盡量保持一致, 討論起來比較有共通的語言,尤其是在一些專有名詞的欄位命名上。14
[心得] 反推樂淘★物品名稱:樂淘代購 ☆賣家名稱:樂淘 ★拍賣網址: ☆網誌心得: 如同一些GOOGLE評論所說,這是一間令人感覺極度以他們公司立場有利方向8
Re: [情報] HTC USB-C to USB-C 200cm傳輸線 $99元突然想到等了一星期還沒收到,看推文已經陸續收到, 結果打去客服詢問說沒有查到這筆訂單。(但我登入HTC 能查到訂單編號 也能看到已備貨狀態) 我是線上刷卡的,因此無論銀行扣款,或是HTC金流平台(藍新) 信箱都有收到通知, 也有相關的 交易序號,但客服人員 還是堅持要我打去銀行調資料再回給他們6
[問題] 蝦皮商城購買三星產品無法登錄時間: Mon Sep 27 22:05:58 2021 大家好 我在一個月前(8/26)透過蝦皮商城購買了三星平板 並有上網登錄(登錄成功) 但今天收到三星簡訊告知「查無此筆訂單」而審核失敗5
[討論] 想問一下這樣算插隊嗎?顧客A跟店員講正事, 顧客B突然跑來詢問事情。 顧客B先訊問xx商品在哪裡, 顧客A以為只是問一下, 並沒有說話2
[問題] 請問7-11賣貨便的冷凍店取訂單查詢和發如題 使用7-11的賣貨便 訂了幾間店家 i冷凍店取的商品 但是從買家訂單裡查不到訂購資料 輸入訂單編號也找不到- 4/27會員滿千打9折 有博客來滿999折100元之折價券*1 需滿$1200折 $100 注意事項: 1.訂單衍生之購物金、折價券及發票歸代買者