我有一些分层数据(目前有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
会有额外的时间。因此,设计必须灵活,以便我可以添加或删除一些层次。当然,表演必须保留。
我应该遵循哪种设计?
的DB2版本的东西吗?最近的支持使用递归查询,它支持分层模型。此外,你的数据列是什么(它们在** intent **中有多不同,而不是数据类型)?这(逻辑)可以存储在一个表中吗?对于_known_(在设计时)层数,您的初始方法可能实际上正常工作。您可以稍后在表上运行更新,以添加/删除级别。 – 2012-08-17 15:27:31
@ X-Zero我使用DB2 9.7。各级别不同,completeley不同。就我而言,将它们存放在平坦的桌子里不是一个好主意。 – Kayser 2012-08-17 15:31:01
然后我可能会坚持你拥有的东西。如果你有一套已知的级别(就像你看起来那样),那么使用表结构来递归级别是不必要的。只有当你进入任意级别时,事情才会变得“有趣”。 – 2012-08-17 15:42:06