對于我的大學專案,我有兩個 SQL 表
一個有用戶資料
USERNAME | PHONE NUMBER | RFID CARD NUMBER
另一個是產品資料庫
PRODUCT NAME | PRODUCT PRICE | PRODUCT QUANTITY | BARCODE NUMBER
這個想法是,當我用手機上的應用程式掃描條形碼時,掃描的產品及其價格會被添加到用戶的購物資料庫中。
購物資料庫是
USER ID | PRODUCTS SCANNED | EXIT STATUS
是USER ID外鍵RFID CARD NUMBER
我想將其添加product barcode: price為陣列/映射,我學會將陣列添加到 SQL 中的唯一方法是使用JSON資料型別。
EXIT STATUS是一個布爾列,它基于 JSON 列是否為空而為真/假。
我只知道 SQL 的基礎知識,并且從我讀過的內容來看,在 MySQL 中存盤陣列的唯一方法是 JSON。但我對 JSON 資料型別的用法了解不多。
有沒有其他方法可以使用完全相同的方法來存盤陣列,或者我可以使用更好的方法來滿足當前的需求?
uj5u.com熱心網友回復:
我建議創建另一個表:
SHOPPING CART | PRODUCT | PRICE
SHOPPING CART 列是您的購物表的外鍵。
PRODUCT 列是您的產品表的外鍵。
在此表中,您可以為同一個購物車插入任意數量的行,每行一個產品。
您應該將每種產品的價格復制到此表中,因為該表記錄了客戶在購買產品時為該產品支付的費用。以防下周產品價格發生變化。
這比使用 JSON 要好得多。插入另一行很容易。洗掉一行也很容易,以防客戶放回產品。對購物車的價格進行 SUM() 之類的操作也很容易。如果您使用 JSON,任何這些事情都會變得更加困難。
通常,您應該嘗試以正常形式設計資料庫,而不是盡可能使用 JSON。它使您的代碼更容易用于更廣泛的查詢,并且如果您避免使用 JSON,您的資料將具有更好的完整性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456433.html
