具有分层数据(左值和右值)的多个树。

| 在单个表中维护多个发束有哪些问题? 具有多棵树的动机是在开始插入节点时避免对所有节点进行过多的更新。每棵树都是完全独立的实体。 示例表:
tree_id  | id  | lft | rgt | parent_id |   various fields . . .
---------------------------------------------------------------------
1        |  1  |  1  |  4  |   NULL    |   ...
1        |  2  |  2  |  3  |    1      |   ...
2        |  3  |  1  |  4  |   NULL    |   ...
2        |  4  |  2  |  3  |    3      |   ...
    
已邀请:
        在一个表中存储多棵树是很常见的,只需要确保组成一棵树的值正确存储即可,否则会导致数据完整性问题,例如无意义的树结构。 假设我们有一棵二叉树(就像您的示例中的一棵树)。如果一棵树的深度是5。 ((2 ^ n)-1)=(2 ^ 5-1-1)个节点或数据库中的31行是微不足道的。即使深度为10,它仍然是少量的行,但是将是一棵相当巨大的树。因此,在数据库中有多个树X的情况下,X((2 ^ n)-1)=行...这还不错。因此,在一个表中可能存在一百棵树,并且只有十万行,这相对较小。 另外,假设每个构造的新树都存储在其自己的表中,那么很快,随着时间的推移,数据库中将充满大量表以匹配现有树的数量。制作不必要的额外表似乎不是一个好主意,在代码方面增加了不必要的复杂性,以访问这些多个表。 详细查看您的表,它在列方面看起来不太正确,但是我敢肯定,表示例只是为了向您展示您的意思而迅速抛出的东西。
tree_id, node_id, left_node_id, right_node_id, various_fields...
嗯,一定要索引那些_id字段。     

要回复问题请先登录注册