将嵌套数据保存在数据库中

时间:2012-08-17 13:06:09

标签: database db2

我有一些分层数据(目前有6个级别)。每个级别都有不同的属性。

我为每个级别添加了一个单独的表,并在每个表中为父级添加了一个外键。但我不知道这是不是正确的做法。

Level1: id, ColA, ColB, ColC
Level2: id, ColD, ColE, ColF, level1_Id
Level3: id, ColG, ColH, level2_Id
Level4: id, ColI, ColJ, ColK, ColL, level3_Id
Level5: id, ColM, level4_Id
Level6: id, ColN, ColO, level5_Id

会及时出现更多关卡。因此,设计必须灵活,以便我可以添加或删除某些级别。当然必须保持表现。

我应该遵循哪种设计?

1 个答案:

答案 0 :(得分:1)

我担心,这不是最好的方式,因为它不够灵活,无法为您提供无限的关卡和性能。

这个问题被称为“分层数据模型”,有几种方法可以实现它。大多数可移植格式称为“嵌套集”模型。其他模型是Adjacency Model,以及Oracle和Microsoft的供应商特定模型。

以下是可以帮助您入门的内容

http://www.evanpetersen.com/item/nested-sets.html http://www.sqlsummit.com/AdjacencyList.htm