2010-09-01 56 views
1

我想允许我的用户选择退出某些电子邮件通知。我试图决定如何在数据库中实现这一点。我已经有一组Users,所有电子邮件都存储为EmailTemplates,它们有一个唯一的密钥。所以我想用一个简单的m2m表与用户/电子邮件将工作得很好。但是,每次创建用户时,我是否应该将此表与所有用户/电子邮件组合组合(可能会使添加新电子邮件时的操作变得复杂?),因此默认情况下它们会选择所有内容,或者我应该(2)做它倒退,并说如果这个用户/电子邮件对没有条目发送电子邮件?然后,偏好表类变成BlockEmailNotification表。电子邮件通知首选项

想法?

回答

1

在你的鞋,我会与BlockEmailNotification表去。正如您所说,它消除了为每个新电子邮件模板填充表的开销。此外,由于大多数人不会花费额外的努力来选择退出(或者甚至意识到他们可以或知道如何),所以它的行数会更少,但对性能的影响取决于您拥有多少订阅者。

1

也许EmailNotificationRules在其中您最初存储(USER_ID, '默认')。和(user_id,'跳过mail_1模板'),默认情况下mail_1是opt_in;或(user_id,'添加mail_1模板')时,默认情况下mail_1是opt_out ...

1

我会建议开发一个用户首选项框架,其中“BlockEmail”可能是一个设置,并且该设置可能包含应收集的ID不被发送。在电子邮件生成/准备过程中,将查找用户的偏好,并且电子邮件继续或中止。拥有一个首选框架还可以让您在其他地方扩展用户配置功能。

+0

所以....选项#2。 – mpen 2010-09-01 17:23:39

+0

@Mark - 可能更像2a。我想说这比它更多一点,但是这是一般的想法。 – 2010-09-01 17:29:00

1

OTOH,如果杰夫·M是错误的,您的特定用户更精明和退出的一切,你必须比如果你做了它的其他方式更行。

在这些类型的问题,我不知道,如果它使你开始一个巨大的差异,我不知道这将是一个巨大的重写稍后改变这个决定。