2011-10-30 52 views
1

我在SQL Server用戶的表的所有聯繫信息,個人信息等。當每個用戶註冊到我的網站,他們將給予選擇加入5個不同的選項類型的電子郵件,如:數據庫設計,選擇在電子郵件

  • 我希望收到有關新事物的電子郵件
  • 我希望收到月報

等等等等,我想決定來存儲這些信息的最佳方式在數據庫中。我目前的想法是有一個5列的獨立表格(每個選擇一個),值是一個布爾值/位值。

由於不會定期所需的信息,也只會是當我們想將郵件發送到用戶所需。有沒有更好的方法/最佳做法來做這樣的事情?

回答

1

與您提出的設計的問題是,它難以在將來添加新的電子郵件類型;你現在只有5個,但是當你添加第六個或第七個時會發生什麼?

相反,我建議是這樣的:

User Table: 
UserID (Primary Key) 
User Attributes 

EmailTemplate Table 
EmailTemplateID (Primary key) 
Email Template Attributes 

UserEmailTemplates 
UserID 
EmailTemplateID 

您可以輕鬆地添加新的模板,並將其與用戶相關聯。

+0

添加一個關係數據庫,使數據庫更加複雜。例如,客戶端代碼現在必須遍歷行讀取郵件列表。它必須動態地構建複選框的網頁列表。這是有道理的,如果你打算做郵件列表配置的,但謹慎行事:) – Andomar

+0

我想我不知道發生了什麼還灌進了軌道,我應該爲未來做準備。多謝你們 –