Допустим, у меня есть следующая таблица пользователей
идентификатор, тип
1, "A"
2, "B"
3, "B"
4, "A"
5, "B"
6, "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», в которой хранятся индексы external_key пользователей с типом «A» (т. е. «эти пользователи имеют тип «A»), и аналогично для «B», и в этом случае я мог бы просто определить простая ассоциация has_many через таблицу соединений от «А» к «Б» и наоборот.
Я хочу иметь возможность напечатать что-то вроде a.b, чтобы создать все «B», с которыми связано «a», а также b.a, чтобы создать все «A», с которыми связано «b».
Мой вопрос: может ли эта ассоциация «многие ко многим» между «A» и «B» быть определена с использованием вместо этого одной модели пользователя? Можно ли использовать самосоединение?
Спасибо за уделенное время