我正在发送电子邮件定期向注册客户一个产品,我想实现某种从这些电子邮件退订机制。存储电子邮件取消订阅的到DB
大约有5种类型的电子邮件,并包含所有用户User
MySQL表。新用户默认订阅所有电子邮件类型,并且可以单独取消订阅每种电子邮件类型。
我的问题是我应该如何存储这些取消订阅的数据库,同时保持高性能和可扩展性,并没有过于复杂的事情。以下是想出了几个选项,每个人都有自己的优点和缺点:
- 添加在
User
表中的布尔列中为每次报告类型值为true的默认值。 - 创建一个新的
Unsubscription
表与一对一表与User
表的关系。每个电子邮件类型都会得到一个列,每个用户都会得到一行。 - 创建一个新的
Unsubscription
表与多对一与User
表的关系。每个取消订阅请求都会在表上创建一个新行。
是否有用于存储退订信息的最佳做法?什么是数据库设计问题?
为什么你需要存储取消订阅的模型
BitField
?难道你不能从用户中删除适当的订阅吗? – Anentropic 2014-12-03 14:15:09@Anentropic默认情况下,每个用户订阅的所有电子邮件的类型,所以我认为它更有意义只保存取消订阅。另外,当添加电子邮件类型时,不需要更改任何数据。 – Tzach 2014-12-03 14:29:38