我的数据库中需要以下结构的帮助。
这些是表格
现在我需要对此进行构建,让我们从上一篇文章开始。
该文章属于某个产品,然后该产品属于产品组,则该产品组属于OptionalGroup,而OptionalGroup属于PriceList。
今天这种关系看起来像这样。
示例数据:
> Pricelist: 81
> OptionalGroup: Shoes
> ProductGroup: Shoelace
> Product: Shoelace 1
> Product: Shoelace 2
我该如何设计呢?
通过这种方式,为了获得我现在需要的产品价格,可选组,产品组,我就可以获得产品。因为价格表有自己的OptionalGroup,它也可以有相同的可选组名。
答案 0 :(得分:1)
我该如何设计呢?
您已经做过;)您的数据模型似乎与您描述的要求相符。
虽然有一些可能的变化而没有从根本上改变基本思想。例如......
...使用identifying关系将父PK“迁移”到子级,因此您可以(例如)直接从PriceListId
表中获取Product
,而无需加入ProductGroup
和OptionalGroup
表,但代价是“胖子”FK。
具有非识别关系的设计是否优于此处显示的设计是工程权衡的问题。两者都有利有弊,你的任务是为你的特定案例挑选一个更专业,更少缺点 。
此外,如果(other fields)
表中没有PriceList
,并且您永远不会有空的价目表(或者只是不区分空的和不存在的价格表),你可以完全省略那个表。
答案 1 :(得分:0)
这个设计可以,
table name PriceList
ProductID--> PK
Price
table name OptionalGroup
GroupID--> PK
ProductID--> FK
GroupName
table name ProductGroup
ProductGroupID--> PK
ProductGroupName
GroupID--> FK
table name Product
ProductName
ProductGroupID-->FK