我有一些分层数据(目前有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
会及时出现更多关卡。因此,设计必须灵活,以便我可以添加或删除某些级别。当然必须保持表现。
我应该遵循哪种设计?
答案 0 :(得分:1)
我担心,这不是最好的方式,因为它不够灵活,无法为您提供无限的关卡和性能。
这个问题被称为“分层数据模型”,有几种方法可以实现它。大多数可移植格式称为“嵌套集”模型。其他模型是Adjacency Model,以及Oracle和Microsoft的供应商特定模型。
以下是可以帮助您入门的内容
http://www.evanpetersen.com/item/nested-sets.html http://www.sqlsummit.com/AdjacencyList.htm