2017-06-01 35 views
0

我不是英語母語的人,如果我犯了錯誤,我很抱歉。我正在做一個網上數據庫應用程序 - 花店在線 - 一個人可以爲他們重要的人訂購網上花束,並通過快遞將花束交付給這些人。我在數據庫模式方面遇到了很大的問題。我無法以正確的方式連接實體 - 連接正在產生矛盾,效率很低。這是數據庫模式:花店在線數據庫模式 - 正確的實體連接?

click here to see the schema


我用從SPEC_BUKIET連接實體FLOWER問題。我將解釋數據庫假設:

1.每種花束(實體BOUQUET_KIND)可以在不同尺寸的花束
2.不同尺寸的花束(實體SPEC_BUKIET)同一種類的,有一個不同的價格
3.不同大小和相同種類的花束使用不同數量的同類花朵(例如,小花束使用2朵玫瑰和2朵鬱金香,中等花束使用4朵玫瑰和4朵鬱金香,大花束使用8朵玫瑰和8朵鬱金香)(實體BOUQUET_FLOWER
4.用於花束可以有不同的長度和顏色(實體FLOWER


隨着數據庫設計像模式我收到其中不同大小相同種類的花束可能分配完全不同的花+ SQL的一個悖論查詢我想選擇花束中使用的花朵變得過於複雜。我知道有一種更簡單的方法來解決該架構中的關係,但幾個星期以來它就不會出現在我的腦海裏。

我會很感激任何幫助。

+1

我認爲這對於stackoverflow來說過於寬泛。我建議你研究「物料清單」https://en.wikipedia.org/wiki/Bill_of_materials它可能有助於找到正確的方法。最終聽起來就像你在設計一個ERP系統,也許像Microsoft Dynamics這樣的東西對你來說會是一個更好的方法。 – JeffUK

+0

請參考您所關注的特定建模方法。請儘可能使用文字。也就是說這個圖的全部內容。但請僅包括與您的問題相關的內容。在這樣的子集內,將您認爲正確的設計部分與您認爲有問題的部分隔離開來。解釋你如何遵循你所遵循的設計方法來獲得你所得到的。 – philipxy

回答

0

我相信你的問題是你已經使BOUQUET_SIZE成爲SPEC_BUKIET的一個屬性。這沒什麼不妥,但聽起來像你有一個不同的BOUQUET_SIZE的概念,而不改變其他任何東西,這與你的模型不匹配。可能你想要添加一個對象BOUQUET_INSTANCE:

BOUQUET_INSTANCE MANY:1 SPEC_BUKIET 
BOUQUET_INSTANCE MANY:1 BOUQUET_SIZE 
BOUQUET_INSTANCE 1:MANY BOUQUET_FLOWER 
相關問題