2017-06-01 102 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 
相关问题