0

次のユーザーのテーブルがあるとしましょう

ID、タイプ
1、「A」
2、「B」
3、「B」
4、「A」
5、「B」
6、「A」

2 つのユーザー タイプがあります。「A」ユーザーと「B」ユーザー。「A」は多くの「B」に接続でき、「B」は多くの「A」に接続できます。次の「接続」テーブルがあるとしましょう

id、A_id、B_id

1, 1, 2
2, 4, 2
3, 4, 3
4, 6, 5
5, 1, 5
6, 4, 5

これは、次のグラフを表します。

接続グラフ

「A」タイプのユーザーのforeign_keyインデックスを格納する「A」のテーブルを持つことができます(つまり、「これらのユーザーはタイプ「A」です)、「B」についても同様です。 「A」から「B」へ、およびその逆の接続テーブルを介した単純な has_many 関連付け。

「a」が接続されているすべての「B」を生成する ab のようなものと、「b」が接続されているすべての「A」を生成する ba のようなものを入力できるようにしたいと考えています。

私の質問は、「A」と「B」の間のこの多対多の関連付けを、代わりに単一の User モデルを使用して定義できますか? 自己結合は使用できますか?

お時間をいただきありがとうございます

4

1 に答える 1