Использование таблиц соединения в рельсах всегда создает для меня проблемы, особенно в связи с необходимостью создавать дубликаты записей, когда предполагается взаимность. То есть я добавляю кого-то в друзья и автоматически становлюсь их == требуется два присоединения.
Возьмите простое приложение квитанций, которое отслеживает двух человек, которые потратили что.
ПОЛЬЗОВАТЕЛЬ может иметь несколько ДРУЗЕЙ. Для каждого ДРУГА они могут отслеживать несколько вкладок (т. Е. Вкладку для продуктов, другую для счетов и т. Д.), Каждая из которых содержит несколько ЧЕК, добавленных любым ПОЛЬЗОВАТЕЛЕМ.
Так что в этом случае мне понадобится таблица ДРУЖБЫ, и мне нужно создать две дружеские отношения, если я предполагаю, что когда один пользователь объявляет другого как друга, жест отвечает взаимностью. Здесь кроется моя проблема. Мне нужно связать общую вкладку с обоими ДРУЖБАМИ. Это в основном говорит
у дружбы много вкладок, а во вкладке много друзей.
Это включает в себя еще одну таблицу соединений ... я прав?
Это просто похоже на большое дублирование, и мне интересно, есть ли лучший способ сделать это или как вы разумно справляетесь с этим в своем коде? Вы создаете много обратных вызовов, чтобы гарантировать, что когда что-то сделано с одной дружбой, это повторяется и с другой?