2011-10-30 4 views
1

私はSQL Serverのユーザーテーブルをすべての連絡先の詳細、個人情報などを持っています。各ユーザーが自分のWebサイトにサインアップすると、5種類のオプトインオプションが与えられます以下のようなメールの種類:オプトイン電子メールのデータベース設計

  • 私は私がこの情報を格納するための最良の方法を決定しようとしているなどなど

月刊ニュースレターを受け取りたく新しいもの

  • に関するメールの受信を希望データベースに保存する。私の現在の考えは、5つの列(各オプトインに1つ)とブール値/ビット値である別々のテーブルを持つことです。

    情報は定期的に要求されるものではないため、ユーザーにメールを送信する場合にのみ必要となります。このようなことをするための良い方法やベストプラクティスはありますか?

  • 答えて

    1

    提案されたデザインの問題は、今後新しいメールタイプを追加することが難しくなることです。今は5つしかありませんが、6番目または7番目を追加するとどうなりますか?

    代わりに、私のようなものを提案します:あなたは簡単に新しいテンプレートを追加し、ユーザーに関連付けることができ

    User Table: 
    UserID (Primary Key) 
    User Attributes 
    
    EmailTemplate Table 
    EmailTemplateID (Primary key) 
    Email Template Attributes 
    
    UserEmailTemplates 
    UserID 
    EmailTemplateID 
    

    を。

    +0

    データベースにリレーションを追加すると、データベースが複雑になります。たとえば、クライアントコードでは、メーリングリストを読むために行を反復処理する必要があります。チェックボックスのWebページリストを動的に構築する必要があります。これは、メーリングリストを構成可能にしたいが、慎重に踏み出すつもりであれば理にかなっている:) – Andomar

    +0

    私は、今後何が起こっているのかわからないと思うので、私は将来を準備しなければならない。みんなありがとう –

    関連する問題