Database design 电子邮件通知首选项

Database design 电子邮件通知首选项,database-design,Database Design,我想允许我的用户选择退出某些电子邮件通知。我正试图决定如何在数据库中实现这一点。我已经有了一组用户,所有的电子邮件都存储为电子邮件模板,它们有一个唯一的密钥。因此,我认为一个简单的m2m表格和用户/电子邮件会很好地工作 但是,我是否应该(1)在每次创建用户时使用所有用户/电子邮件组合填充此表(添加新电子邮件时可能会使事情复杂化?),以便在默认情况下,他们会选择加入所有内容,还是应该(2)反向操作,并说如果没有此用户/电子邮件对的条目,则发送电子邮件?然后preferences表就变成了一个Blo

我想允许我的用户选择退出某些电子邮件通知。我正试图决定如何在数据库中实现这一点。我已经有了一组
用户
,所有的电子邮件都存储为
电子邮件模板
,它们有一个唯一的密钥。因此,我认为一个简单的m2m表格和用户/电子邮件会很好地工作

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


想法?

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

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

可能是您最初存储的EmailNotificationRules(用户id,“默认”)。和(用户标识,“跳过邮件模板”),当邮件1默认为opt_-in时;或者(用户id,“添加邮件1模板”),当邮件1在默认情况下是opt\u out…

可能是您最初存储的电子邮件通知规则(用户id,“默认”)。和(用户标识,“跳过邮件模板”),当邮件1默认为opt_-in时;或者(user_id,'add mail_1 template'),当mail_1默认为opt_out…

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

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

oth,如果Jeff M错了,并且你的特定用户更精明,选择不参与任何事情,那么你将拥有比用其他方式更多的行数


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

oth,如果Jeff m是错误的,并且你的特定用户更精明,并且选择退出所有内容,那么你将有更多的行,而不是用其他方式


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

@Mark-也许更像2a。我想说的不止这些,但是的,这是总的想法。@Mark-也许更像2a。我想说的不止这些,但是的,这是总的想法。