2010-09-01 54 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是錯誤的,您的特定用戶更精明和退出的一切,你必須比如果你做了它的其他方式更行。

在這些類型的問題,我不知道,如果它使你開始一個巨大的差異,我不知道這將是一個巨大的重寫稍後改變這個決定。