0

カスタマイズしたい :

1. ホームページ上の取引の順序
2. ユーザーが見た取引に応じた電子メール。

SOの人々のおかげで、アプリが必要とする多対多の関係を持つために、「standard_user」、「deals」、「deals_participation」の3つのモデルとテーブルを持つことが最善のようです。次のように:

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

私が迷子になっているのは、特定のユーザーが参加した取引のデータをどのように保存し、どのテーブルにクエリを実行する必要があるかです。

  • この deal_participation_table を保存する必要がありますか? その列は deal_participation_id/user_id/deals_id であり、膨大な数の行を検索して user = Mathieu45 (例) を見つけ、対応する取引を見つけていくつかの取引を行う必要があるため、deals_participation テーブルはクエリに対して非常に効果的ではないのではないかと心配しています。彼が興味を持っている取引の種類を知るための一種の計算と、その情報を使用してホームページの取引リスト (および彼に送信される電子メール) を調整します。
  • 代わりにuser_idに基づいて彼が行った取引に直接アクセスできるようにusers_table自体に保存する必要がありますか?
  • user_history 専用の別のテーブルに保存しますか?
4

1 に答える 1