Flower Shop在线数据库架构 - 正确的实体连接?

时间:2017-06-01 15:44:23

标签: database-design

我不是母语为英语的人,如果我犯了任何错误,那就很抱歉。我正在做一个网络数据库应用程序 - 在线花店 - 一个人可以为那些对他们很重要的人订购在线花束,并通过快递将花束交给那些人。我的数据库架构存在很大问题。我无法以正确的方式连接实体 - 连接正在创建悖论并且效率非常低。这是数据库架构:

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.花束中使用的同种花可以有不同的长度和颜色(实体花


随着数据库设计就像在模式中我得到一个悖论,不同大小的相同类型的花束可以分配完全不同的花+ SQL查询,我想选择花束中使用的花变得过于复杂。我知道有一种更简单的方法可以解决该模式中的关系,但已经有几周没有出现在我的脑海中了。

我将不胜感激。

1 个答案:

答案 0 :(得分: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