2016-11-23 65 views
0

在设计寻找意见跟踪电子邮件的事件: - 排队 - 交付 - 打开 - 点击 - 反弹 - 标记为垃圾邮件数据库设计用于跟踪事件

以上所述的事件,将有关于他们的独特信息。例如,打开的事件将具有ip &浏览器信息,类似地,点击事件也将包含单击的链接。

我在想每个事件的一个表,其中有相应的email_id,根据需要有列(link_clicked,ip_address等)。

我的问题确实是,如果我想要得到电子邮件ID为X的最后5个事件,而不是查询每个表格并按时间排序,然后选择最后5个,那么有没有中间表格是不好的做法, email_events,这将是一个连接它们的多态关系,它们还将包含一个用于排序的时间列?

谢谢!

回答

0

不!一张桌子,而不是每个事件一张桌子。

SELECT ... 
    WHERE id = ... 
    FROM Events 
    ORDER BY timestamp DESC 
    LIMIT 5; 

获取最近5次(或更少)的事件。