1

我有一些分层数据(目前有 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

随着时间的推移会有更多的关卡。因此设计必须灵活,以便我可以添加或删除一些级别。当然,性能必须保持。

我应该遵循哪种设计?

4

1 回答 1

1

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

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

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

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

于 2012-08-17T13:21:41.933 回答