我有这些表格:
broadcast
id
name
email
id
broadcast_id
user_id
subject
email_open
id
email_id
user_id
我想在broadcast
表中保留email_open记录的计数。
通过在broadcast_id
表中添加email_open
,这是最有效的方法吗?如果是..那么我知道我可以在我的email_open
模型中执行此操作:
belongs_to :broadcast, counter_cache: => true
然后,我在我的广播表中添加email_open_count
...但我想知道是否有办法不这样做。
此外,多个用户可以在email_open
中重复记录。如何使计数具有明显的user_id
?
例如,user_id
1可以打开5次电子邮件,但我只想让email_open_count
为1。
由于
答案 0 :(得分:0)
因此,根据您的示例,如果user_id 1可以打开电子邮件5次,但您只需要将email_open_count设置为1.您可以使用相同的user_id发送电子邮件,或者只有当该用户打开电子邮件但是用户已经打开,请不要再次保存。