Я ранее создал объединенную таблицу с миграцией:
class CreateJoinTableCategoryListing < ActiveRecord::Migration[5.2]
def change
create_join_table :categories, :listings do |t|
# t.index [:category_id, :listing_id]
# t.index [:listing_id, :category_id]
end
end
end
Я оглядывался назад на это, так как собираюсь создавать новые таблицы соединений. Но, глядя на это, я заметил, что я мигрировал с комментариями t.index, и объединенные таблицы по-прежнему работают правильно.
Я прочитал это и не нашел ни одного сообщения о том, что кто-то делает то же самое или не нуждается в них.
Как это работает с этими индексами, которые никогда не переносились, и насколько они нужны?
Я создаю новую миграцию:
class CreateJoinTable < ActiveRecord::Migration[5.2]
def change
create_join_table :users, :affiliates do |t|
# t.index [:user_id, :affiliate_id]
# t.index [:affiliate_id, :user_id]
end
end
end
Какой индекс мне выбрать здесь?
Как это должно работать, партнер может вручную вносить «комиссию» в таблицу (которую необходимо добавить в миграцию), но если комиссия обновляется, она должна занять место столбца и не создавать новую строку.
Пользователь на самом деле не имеет к этому никакого отношения, и в основном он будет обновляться партнером для обновления ставок комиссионных, которые он имеет для пользователя.
Обновление:
Возможно ли добавить еще одно поле в таблицу соединений?
Я хотел добавить: комиссию к столу, но я не могу найти никаких документов, чтобы сделать что-нибудь для этого. Должен ли я просто определять размер комиссии в таблице пользователей и покончить с таблицей соединений?
ОБНОВЛЕНИЕ 2:
Заканчивал эту идею и оставляю свой текущий метод только для ассоциации пользователей и партнеров. Я покончил с идеей UsersAffiliates, так как она не нужна для этого случая.