我正在設計一個作爲項目在線結賬的數據庫。這是我創建的第一個數據庫,所以對我來說很容易。無論如何,我有表「帳戶」,「訂單」,「購物車」和「sku」。帳戶包含運送信息,姓名,電話,電子郵件等。主鍵是accountNumber。訂單保存帳單信息。它的外鍵是accountNumber,它的主鍵是OrderID。購物車只有2列 - orderID和skuNumber。 OrderID是外鍵,skuNumber是主鍵。 SKU有4列 - skuNumber,數量,價格,單位和totalPrice。 skuNumber是外國和主鍵。數據庫設計幫助 - 在線結帳項目
我的問題是 - 我目前有這種設置的方式只能一次訂購1件SKU。你如何設計這種不同的方式,這是沒有必要的?我知道我可以做sku1,sku2等,但是這看起來好像違背了最佳實踐。
謝謝!
我應該對OrderItems表中的主鍵有什麼要求?另外,SKU就像條形碼。 – cmorris1441 2012-03-07 16:28:43
@ cmorris1441,那麼,你有兩個選擇,第一個是使用兩個字段'ProductId'和'OrderId'作爲主鍵,第二個是使用[Surrogate Key](http://en.wikipedia.org/wiki)/Surrogate_key)就像'OrderItemId'。 – 2012-03-08 00:37:23
我不喜歡OrderItemTable中的productId的想法。如果產品更改了產權,價格或其他財產,該怎麼辦?OrderItem可以在提交訂單後持續數月,甚至在歷史中。那將是一個令人誤解的訂單歷史頁面 – 2017-10-09 11:17:06