2012-04-28 70 views
0

我正在为电子商务网站创建数据库,但我遇到了类似于树结构的产品类别的数据库架构问题。产品类别的树结构化数据库模式

一个厂商可以属于一个或多个部门和可以有一个或多个类别和分类可以有一个或多个子类别。同样的子类可以对儿童有它等等...

一个产品应该被映射到一个供应商(如部门是未知的)或部门(如类是未知的)或子类别等等..

做这种复杂关系数据库的最好方法是什么?

+0

什么是 “最好的” 是什么意思?最容易存储,还是最快查询? – 2012-04-30 20:34:57

+0

我的意思是查询速度最快,以XML格式获得完整的层次结构可能@StephaniePage – Jemsworld 2012-05-01 20:38:25

回答

0

嘿,你可以在单个表中做到这一点。

ID PARENT_ID NAME 
------------------------------ 
1 0   vendor1 
2 0   vendor2 
3 1   department11 
4 1   department12 
5 2   department21  
6 3   category11 
7 6   subcategory11 

从上面可以了解整个...

+0

这是一个非常简单的解决方案,这个问题..我如何查询它给xml中的树结构(MS SQL)。如果你能提供我的查询,这将是非常好的。 – Jemsworld 2012-04-28 15:29:29

+0

这是建立等级表结构的最佳方式,还是有更好的方法来做到这一点。在这种结构中,保存部分很容易,但在回顾时,我们需要编写多个查询来知道子类别11的供应商,因此我们需要通过查询顶层的每个级别来查找它。 – Jemsworld 2012-04-29 20:38:15

+0

查询可能与此有关... 'create table YOUR_TABLE(id int(20)primary key,parent_id int(20)references YOUR_TABLE(id),name varchar2(100));' 是的,这是在树型数据库结构的情况下最喜欢的结构。 – Ketan 2012-04-30 05:09:23