SQL 2005 Database design for a Web Newsletter System

  • I am trying to get the best design layout of SQL tables to do the following through a website (public front-end & administration backend system):

    Front-End:

    ---------

    1) Public Web form to grab the users name and email address

    2) MyAccount section - perhaps to adminster what mailing lists they can choose to be part of

    Back-End Admin:

    ---------------

    1) Create and Save HTML Newsletter Templates (using WYSIWYG editor)

    2) Create and manage Mailing Lists

    3) Create and manage Users within multiple lists

    4) Track Email newsletters being sent and perhaps

    The SQL tables i have come up with so far are:

    1. MailList (list name)

    2. MailMbrs (registered via web forms)

    3. MailSubscribe (Contains the ListID & MbrID combined)

    4. MailTemplate (HTML WYSIWYG content)

    5. MailSent (emails sent - include ID's from above tables + Date)

    I think this is a pretty decent design but i was wondering if anyone else has a pre-existing SQL table structure they can share, or any comments on this design?

    Pros vs Cons?

  • That looks like it is probably a good starting point. What are the columns in each table?

  • Hadn't thought too much about the table columns yet but i'd like to keep the information to a minimum so the user doesn't feel like they have to give all their personal information just to receive a newsletter.

    The main focus would be the persons name (for personalisation) and email address for sending newsletters. I can't imagine i'd need anything else from the front end user.

    Other columns for the backend tables would be minimal. Just enough relational information to make the system operate in the Admin section when the Administrator of the website is ready to:

    - create a new newsletter template ('ntext' field to store the HTML)

    - create a new list name

    - join members to the list by linking ID's in a new table

    - send a bulk newsletter to all recipients in the list using a looping routine.

    I suppose there is a lot more information i can add later to both front & back end table columns. Any ideas?

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply