【问题标题】:Venn diagrams as database model - is there something similar like MPTT?维恩图作为数据库模型 - 有没有类似 MPTT 的东西?
【发布时间】:2015-11-13 22:22:36
【问题描述】:

我想知道如何将维恩图保存到数据库中。好吧其实我不需要实现完整的维恩图逻辑,它更像是一棵树,一个孩子同时是多个父母的孩子。

我的第一个猜测是,使用 n:m-self 关系与带有小帮助表的表。

但我习惯于用嵌套集构建树(请参阅 MPTT - 修改的预序树遍历)。这有助于我避免遍历所有孩子的查询。

是否有类似 MPTT 的方法或将 MPTT 扩展到我的问题的方法,这可以帮助我避免遍历所有孩子?

提前感谢您的任何评论或cmets。

【问题讨论】:

    标签: sql database venn-diagram mptt


    【解决方案1】:

    维恩图的区域有一个一般排序。您只需要将每个区域表示为二进制数。位的数量是集合的数量,每个位表示该区域是否属于给定的集合。例如,对于四组,

    Id         Binary    Interpretation
    =======    ======    ==============
    0          0000      Does not belong to any set
    1          0001      Only belongs to set 4
    2          0010      Only belongs to set 3
    3          0011      Belongs to sets 3 and 4, and not to set 1 or set 2
    4          0100      Only belongs to set 2
    ...
    14         1110      Belongs to sets 1, 2 and 3, and not to set 4
    15         1111      Belongs to all four sets
    

    使用此策略,一旦您定义了区域,您就可以立即检索其Id,不需要树。

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多