我正在爲電子商務Web應用程序的數據庫設計工作。對於這個問題,我簡化了設計,只顯示了與我的問題相關的部分。如何將「升級」實體添加到產品訂單數據庫設計中?
在這種情況下我感興趣的事物(實體)是Products
,Upgrades
和Orders
。
的Products
和Orders
在這種類型的數據庫設計的典型方式有關係,與OrderItems
的創建表的許多一對多的關係:
Products
--------
ProductID (pk)
Name
Description
Price
Orders
------
OrderID (pk)
DateOrderPlaced
OrderItems
----------
OrderID (fk, cpk)
ProductID (fk, cpk)
Quantity
現在我不知道怎麼加Upgrades
到混合:
- 一個
Upgrade
可以用於一個或多個Products
- 一個是有效可以包括零個或多個有效
Upgrades
例如,說我有這些記錄在OrderItems
彌補訂單#1:
OrderID ProductID
------- ---------
1 1
1 2
1 3
我想申請升級#1產品#1 #2 ...
我能想象添加Upgrades
表和OrderItemUpgrades
表,這可以讓我任意數量的Upgrades
應用於給定OrderItem
(線在Order
)。
Upgrades
--------
UpgradeID (pk)
Name
Description
Price
OrderItemUpgrades
-----------------
OrderID (fk, cpk)
ProductID (fk, cpk)
UpgradeID (fk, cpk)
我認爲這是在Order
造型的Upgrade
的「應用」到Product
。
我的問題是,在給定的Product
給定的Upgrade
模型的「有效性」?我應該添加一個ValidProductUpgrades
關聯升級和產品(或其他數據庫層解決方案)的表嗎?或者那個業務邏輯屬於應用層?
感謝韋德,這對第三方確認很有幫助,因爲我正在以正確的方式進行討論! – nselikoff 2009-09-09 19:00:26