さらに 2 つのテーブルから始めることができます。1 つはリレーションシップ (現在の列に似ていますrelation
) を構成するためのもので、もう 1 つは再帰ルックアップ中にどのリレーションシップを参照するかを構成するためのものです。
Table: Relationship
Id: int
Description: string
Table: RelationshipToRelationship
FromRelationshipId: int
ToRelationshipId: int
データは次のようになります。
関係
Id Description
== ===============
1 Brother-Brother
2 Parent-Child
RelationshipToRelationship
FromRelationshipId ToRelationshipId
================== ================
1 1
1 2
私がそれを解決した場合、実行可能なクエリで更新します
私が予見する問題:
- あなたは最も単純なケース (私の兄弟の親が私の親である) を提示しましたが、他のケース (私の兄弟の子供は私の子供ではありません) ではうまくいきません。
- 関係をラベル付けするための同様の問題 (兄弟の親
Parent-Child
に私とラベル付けできますが、兄弟の子供にはラベル付けする必要がありますBrother-Brother-Parent-Child
)。
すべてがすぐに混乱します。関連付けたい各パーティ間の直接的な関係を維持する方がよいでしょうか (つまり、ユーザー 4 と 2 を兄弟兄弟として、4 と 1 を親子としてリンクする、テーブル内の別の 2 つのレコード)。