Я хотел бы настроить:Настроить сайт и электронные письма с предложениями по электронной почте благодаря истории пользователей: как это сделать правильно на Rails/postgreSQL?
1. Порядок сделок на домашней странице
2. Сообщения электронной почты в зависимости от сделок пользователь видел.
Благодаря people on SO, мне кажется, что лучше было бы иметь 3 модели и таблицы «standard_user», «предложения» и «deals_participation» для того, чтобы иметь многие-ко-многим приложение нужно, ссылка таблица с к следующему:
class DealParticipation < ActiveRecord:Base
#This means the deal_participations table has a standard_user_id key
belongs_to :standard_user
#This means the deal_participations table has a deal_id key
belongs_to :deal
#... more logic goes here ...
end
class StandardUser < ActiveRecord::Base
has_many :deal_participations
has_many :deals, :through => :deal_participations
# ... more logic goes here ...
end
class Deal < ActiveRecord::Base
has_many :deal_participations
has_many :standard_users, :through => :deal_participations
belongs_to :admin_user
#... more logic goes here ...
end
Где я потерял: как я должен хранить и какие таблицы следует запрашивать данные из которых наносит определенный пользователь принимает участие в:
- s Могу ли я хранить этот deal_participation_table? Его столбцы являются deal_participation_id/user_id/deals_id, я боюсь, что таблица сделок будет крайне неэффективной для запроса, поскольку мне придется искать огромное количество строк, чтобы найти, где user = Mathieu45 (пример), затем найти соответствующие сделки и сделать некоторые чтобы узнать, какие сделки он интересует, а затем использовать эту информацию, чтобы скорректировать список сделок на главной странице (и отправленные ему электронные письма).
- Должен ли я вместо этого хранить его в самой user_table, чтобы иметь прямой доступ на основе user_id к сделкам, которые он сделал?
- хранить его в другой таблице, посвященной user_history?