我想允许我的用户选择退出某些电子邮件通知。我正在尝试决定如何在数据库中实现它。我已经有一组Users
,所有电子邮件都存储为EmailTemplates
,其中包含唯一键。所以我想一个简单的m2m表,用户/电子邮件可以很好地工作。
但是,每次创建用户时,我是否应该(1)使用所有用户/电子邮件组合填充此表(在添加新电子邮件时可能会使事情变得复杂?)因此默认情况下他们选择了所有内容,或者应该选择我(2)向后做,并说如果此用户/电子邮件对没有条目做发送电子邮件?然后,首选项表类型成为BlockEmailNotification
表。
思想?
答案 0 :(得分:1)
在你的鞋子里,我会选择BlockEmailNotification
桌子。正如您所说,它消除了为每个新电子邮件模板填充表格的开销。此外,它会有更少的行,因为大多数人不会花费额外的努力选择退出(或者甚至意识到他们可以或知道如何),尽管对性能的影响取决于你拥有多少订阅者。
答案 1 :(得分:1)
可能是您最初存储的EmailNotificationRules(user_id,'default')。并且(user_id,'skip mail_1模板')当mail_1默认为opt_in时;或者(user_id,'添加mail_1模板')当mail_1默认为opt_out时......
答案 2 :(得分:1)
我建议开发一个用户首选项框架,其中“BlockEmail”可以是一个设置,该设置可能包含一组不应发送的ID。在电子邮件生成/准备期间,将查找用户的偏好并继续或中止电子邮件。拥有首选项框架还允许您在其他地方扩展用户配置功能。</ p>
答案 3 :(得分:1)
在这些类型的问题中,我不确定它在你开始的地方是否会产生巨大的影响而且我不确定在以后推翻这个决定是否会是一个巨大的改写。