寻找有关设计的意见以跟踪电子邮件事件: - 排队 - 交付 - 打开了 - 点击 - 反弹 - 标记为垃圾邮件
上面的一些事件将有关于它们的独特信息。例如,打开的事件将有ip&同样,点击事件也包含点击的链接。
我正在考虑每个事件的一个表,其中包含相应的email_id,并根据需要添加列(link_clicked,ip_address等)。
我的问题是,如果我想获取电子邮件ID X的最后5个事件,而不是查询每个表并按时间排序然后选择最后5个,那么拥有一个中间表,email_events是不好的做法,这将是一个连接它们的多态关系,它们还包含一个用于排序的时间列?
谢谢!
答案 0 :(得分:0)
NO!一个表,而不是每个事件一个表。
SELECT ...
WHERE id = ...
FROM Events
ORDER BY timestamp DESC
LIMIT 5;
获取最后5(或更少)事件。