具有层次结构的mysql数据库管理

时间:2014-02-03 23:29:29

标签: mysql database database-design

我是数据库设计/管理和mysql的新手,所以我需要一些提示来找到更有效的解决方案来管理特定类型的数据

我有一个项目(产品)表,其中包含所有描述性字段,每个记录都有一个唯一键。

某些项目(不是全部)可以是不同项目的联合。示例:item1,item2,item3,item4,item5 ...其中item3是item1的1个单元和item2的3个单元的组合。 也可以是项目可能包含“项目包”。示例item5包含1个item4单元和1个item3单元(item1的1个单元和item2的3个单元)。

现在,我需要管理所有子项,因为大多数描述性字段都包含在那里,我需要在此级别计算结果。此外,我需要在父级别计算相同的结果。 所有物品(简单或包装)都可以与该特定物品相关联的经济结果出售。

您将如何构建数据库?是否可以在一个表中管理它? 它是一种层次结构,但是物品属性是灵活的,我可以构建任何类型的项目组合来创建一个新项目。

目前我创建了一个表ITEM,包括所有简单和包项的所有常规属性。然后是另一个表(BASKET),它包含了包和单个子项之间的关系:

**ITEM**

key ; description ; type ; other calculated fields ;

1 ; A ; child ; ...

2 ; B ; child ; ...

3 ; C ; pack ;  ...from aggregation...

4 ; D ; child ; ...

5 ; E ; pack  ; ...from aggregation...



**BASKET**  

key_basket ;    key_child ; units ;

3 ; 1 ; 1 ; 

3 ; 2 ; 3 ; 

5 ; 3 ; 1 ; 

5 ; 4 ; 1 ; 

这有意义吗?在这种情况下你会做什么?这是对的吗?有没有办法不重复信息并在一个表中管理所有这些?

0 个答案:

没有答案