【发布时间】:2018-12-11 17:26:13
【问题描述】:
我正在寻找有关如何设计摘要电子邮件功能的一些想法。我不关心实际的业务代码;相反,我想专注于它的要点。
让我们用一个已知的例子来解决这个问题:文章。以下是一些重要功能的总体概述:
- 用户可以选择摘要频率(例如每天或每周);
- 摘要仅包含新文章;
- “新文章”被视为相对于发送给特定用户的上一个摘要;
我一直在考虑以下几点:
- 引入对以前包含在摘要中的文章的每个用户跟踪并将其过滤掉?
- 需要一个新的数据库表;
- 当表包含数百万行时可能会变得很昂贵;
- 如果摘要中包含多种类型的模型怎么办?多个跟踪表?多态表? ...?
- 使用文章创建日期来包含当前日期和所选摘要频率之间的文章?
- 使用数据库中已经存在的当前日期和信息,因此不需要新表;
- 当用户从每日电子邮件更改为每周电子邮件时会发生什么?他可以在每周摘要中再次收到相同的文章。是否应该考虑这种边缘情况?如果有,如何缓解?
- 由于某种原因,文章的创建日期被更新到今天,再次触发日期比较。是否应该考虑这种边缘情况?如果有,如何缓解?
或者你能想出其他方法来实现这个功能吗?
我渴望了解您的见解。
【问题讨论】:
标签: database email database-design