我想定制:
1. 主页
上的交易顺序 2. 电子邮件取决于用户看到的交易。
感谢SO 上的人,似乎最好有 3 个模型和表“standard_user”、“deals”和“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
我迷路的地方是:我应该如何存储以及应该查询某个用户参与的哪些交易的数据:
- 我应该存储这个 deal_participation_table 吗?它的列是deals_participation_id/user_id/deals_id,我担心deals_participation表查询起来效率很低,因为我必须搜索大量行,找到user = Mathieu45(示例)的位置,然后找到相应的交易并进行一些交易进行某种计算以了解他对哪种交易感兴趣,然后使用该信息来调整主页上的交易列表(以及发送给他的电子邮件)。
- 我应该将其存储在 users_table 本身中,以便根据 user_id 直接访问他所做的交易吗?
- 将其存储在另一个专用于 user_history 的表中?