1

ベン図をデータベースに保存する方法を知りたいです。実際には、完全なベン図のロジックを実装する必要はありません。これは、1 つの子が同時に多くの親の子であるツリーのようなものです。

私の最初の推測は、テーブルへの an:m-self リレーションを小さな補助テーブルと共に使用することでした。

しかし、ネストされたセットでツリーを構築することに慣れています (MPTT - Modified Preorder Tree Traversal を参照)。これは、すべての子に対してクエリを反復しないようにするのに非常に役立ちます。

MPTT のようなものや、MPTT を私の問題に拡張する方法はありますか?

事前にコメントやご意見をお寄せいただきありがとうございます。

4

1 に答える 1

0

ベン図の領域には一般的な順序があります。各地域を 2 進数で表すだけです。ビット数はセットの数であり、各ビットは領域が特定のセットに属しているかどうかを示します。例えば、4セットの場合、

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、ツリーは必要ありません。

于 2019-05-24T16:58:38.917 に答える