我創建一個銷售應用程序,並有產品和銷售感謝一些幫助的初步設計從人在這裏:)在工程數據庫設計
不過,我不知道如果我也許過工程或可能會略微簡化我的設計。
以下是我的產品訂單模式。
一些業務規則:
- 客戶可以訂購一個或多個合同
- 合同可以包含一個或多個產品
- A產品可以由一個或多個經銷
- A供給產品可以由一個或多個網絡供應
- A經銷商可以銷售來自一個或多個網絡的產品
- A pro管道價格可能基於經銷商
我的問題:
是我設計的過度設計?這似乎非常複雜,它的使用鏈接表和3個版本的產品創建
- 網絡產品
- 經銷商產品
我試圖強制執行的產品例如,如果分銷商不銷售網絡a,那麼數據庫中的業務規則不應該可用。僅僅將產品分配給分銷商是不夠的。所有來自網絡a的產品,然後只是查詢,看到分銷商1銷售網絡a但沒有產品b這是一個硬性規則,我想阻止人們選擇他們不應該的產品?
假設我無法調整架構是我的2個鏈接表NetworkPRoduct和DistributorNetwork最好還剩一個分銷商產品中使用的複合主鍵或我可以一些如何與代理鍵如networkprodutid逃走?這還會在經銷商只銷售某些網絡的事實之前嗎?
感謝
羅布
不是真的關係到你的問題,但我看到Distributor1表有兩個電話號碼列。這可能值得正常化到另一張桌子嗎?我只是想知道,當有人問第三/第四等:-) – Bridge
由於會發生什麼,我會刪除,因爲它們不再需要的所有聯繫方式。 –
「我試圖強制執行數據庫中的業務規則......」插入示例數據時,您的模式是否強制執行所有這些規則? –