看板 Soft_Job 關於我們 聯絡資訊
我並不是工程師, 目前也在自學中, 針對你的問題提供些答案與解決方向, 希望能幫助到原po, 版上的其他前輩們, 如果認為我的答案有錯誤或增進的空間, 再請各位提點與指教。 ※ 引述《ntpuisbest (阿龍)》之銘言 : 想問問假使我有一個網路商城 : 使用者甲有可能會在A商店 買了 兩個羽球拍 一顆籃球 : 使用者乙有可能在A商店 買了 三雙球鞋 : 那麼我的訂單資料庫設計欄位 : 是應該要每個商品都要佔據一個列會比較適合嗎 : 訂單編號 商品名稱 店家名稱 商品數量 : A1 羽球拍 A 2 : A1 籃球 A 1 : A2 球鞋 A 3 : 我的理解是使用者甲雖然買了兩樣東西,但是這是同一筆訂單,所以訂單編號要相同 : 我都假設成A1這樣 : 可是這樣設計的話,萬一使用者甲一次買十樣商品, : 那我的資料庫不就要有十列來存 : 想問這有更好的設計方式嗎? 先決定你資料庫要用 SQL 還 NoSQL, 你看起來像是要用 SQL, 那你的問題就是沒有把資料表正規化, 依你文中的敘述簡單畫個 ERD, 關鍵字 正規化 了解下, 就能看懂與理解為什麼要這樣設計, 另外你之後的資料操作, Transaction 與 ACID 關鍵字可以看看。 https://i.imgur.com/BSE1Svt.jpg
: 另外想問另外一個問題是 : 如果是一般的註冊使用者帳號密碼的表單傳到後端,我知道後端 : 可以用name來接收 : 但是如果是購物車 : 要怎麼樣把使用者 打勾的 羽球拍 籃球 : 都用json傳到後端 : 畢竟不同商店都有不同的產品清單 : 這方面我也不可能去把每一個商店的購物畫面都刻一遍 不需要畫面一個一個刻, 我以前用 Angular 可刻一個空白畫面, API 取資料後再把資料代入, 其他的前端框架應該也能做到。 從你的文中敘述, 不缺定你是否已有基本的基礎知識, 建議你到 https://github.com/kamranahmedse/developer-roadmap 看看,相信對你會有幫助 ---- Sent from BePTT -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.176.95 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1624346296.A.C05.html ※ 編輯: usayankees27 (114.45.176.95 臺灣), 06/22/2021 15:22:32 ※ 編輯: usayankees27 (114.45.176.95 臺灣), 06/22/2021 15:39:09
ntpuisbest: 謝謝認真回答!06/22 15:58
taipoo: 推06/23 01:31
MoonCode: 我想說 ACID 的特性跟表的設計在這個新手階段不是很正06/24 13:09
MoonCode: 相關,請問你可以講講如果滿足或不滿足 ACID 的情況下06/24 13:09
MoonCode: 你的設計會有什麼差異嗎06/24 13:09
ACID 的部分跟我畫的 ERD 沒什麼關係,我會提到主要是他的敘述讓我覺得他可能才剛接觸 ※ 編輯: usayankees27 (114.44.116.66 臺灣), 06/24/2021 13:57:40
MoonCode: 所以我問你 了解或不了解 ACID,設計會有什麼差別06/24 15:51
MoonCode: 我個人是覺得要別人去看一個東西要有它的意義06/24 15:51
MoonCode: 我認為這階段這不是一定要了解的知識06/24 15:53
M大的第一個疑問, ACID 與 資料表設計關係, 是我文中敘述的問題,做了修正, 我個人覺得兩者沒直接關連, 正規化是以減少資料重複, 與避免資料更新異常為目的, 來決定資料如何儲存, ACID 則是為了資料操作前後資料的正確, 要求資料操作須符合的4個特性。 第二個疑問 ACID 原PO 現階段是否要了解, 我的出發點是原PO 正在做作品, 做到商城資料操作時會有幫助, M大若有其他想法或認為我的敘述有錯誤, 再請你回覆或另發篇文,感謝。 ※ 編輯: usayankees27 (114.44.116.66 臺灣), 06/24/2021 18:42:08 ※ 編輯: usayankees27 (114.44.116.66 臺灣), 06/24/2021 19:06:01