我想知道如何将维恩图表保存到数据库中。好吧,实际上我不需要实现完整的维恩图逻辑,它更像是一棵树,其中一个孩子同时是许多父母的孩子。
我的第一个猜测是,使用一个:m-self 关系到带有一个小帮助表的表。
但是我习惯于用嵌套集构建树(参见 MPTT - Modified Preorder Tree Traversal)。这有助于我避免遍历所有孩子的查询。
是否有类似 MPTT 或将 MPTT 扩展到我的问题的方法,这可以帮助我避免遍历所有孩子?
感谢您提前发表任何评论或评论。
我想知道如何将维恩图表保存到数据库中。好吧,实际上我不需要实现完整的维恩图逻辑,它更像是一棵树,其中一个孩子同时是许多父母的孩子。
我的第一个猜测是,使用一个:m-self 关系到带有一个小帮助表的表。
但是我习惯于用嵌套集构建树(参见 MPTT - Modified Preorder Tree Traversal)。这有助于我避免遍历所有孩子的查询。
是否有类似 MPTT 或将 MPTT 扩展到我的问题的方法,这可以帮助我避免遍历所有孩子?
感谢您提前发表任何评论或评论。
维恩图的区域有一个一般排序。您只需要将每个区域表示为二进制数。位的数量是集合的数量,每个位表示区域是否属于给定的集合。例如,对于四组,
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
,不需要树。