代码之家  ›  专栏  ›  技术社区  ›  mpen

电子邮件通知首选项

  •  1
  • mpen  · 技术社区  · 14 年前

    我想允许我的用户选择退出某些电子邮件通知。我正在决定如何在数据库中实现这个。我已经有一套了 Users EmailTemplates 它们有唯一的密钥。因此,我认为一个简单的m2m表与用户/电子邮件将工作得很好。

    但是,我是否应该(1)在每次创建用户时用所有用户/电子邮件组合填充此表(添加新电子邮件时可能会使事情复杂化?)所以在默认情况下,他们选择了所有内容,或者我应该(2)倒过来说,如果没有这个用户/电子邮件对的条目 发送电子邮件?然后preferences表就变成了 BlockEmailNotification 桌子。

    思想?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Jeff Mattfield Jeff Mattfield    14 年前

    站在你的立场上,我会和 BlockEmailNotification 桌子。正如您所说,它消除了为每个新电子邮件模板填充表的开销。此外,它的行数也会减少,因为大多数人不会付出额外的努力来选择退出(甚至意识到他们可以或知道如何退出),尽管这对性能的影响取决于你有多少订户。

        2
  •  1
  •   pascal    14 年前

    可能是您最初存储的EmailNotificationRules(用户id,“default”)。和(user\u id,“skip mail\u 1 template”),当mail\u 1默认为opt\u in时;或(user\u id,“add mail\u 1 template”),当mail\u 1默认为opt\u out时。。。

        3
  •  1
  •   Joel Etherton    14 年前

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

        4
  •  1
  •   Ess Oh Hader    14 年前

    OTOH,如果jeffm是错的,并且你的特定用户更精明,并且选择退出所有的东西,那么你将会有更多的行,而不是用其他方法。

    在这些类型的问题中,我不确定从哪里开始会有很大的不同,我也不确定以后推翻这个决定会是一个巨大的重写。