Разработка базы данных для подписки на рассылку - PullRequest
1 голос
/ 31 октября 2011

У меня есть таблица пользователей в SQL Server со всеми контактными данными, личными данными и т. Д. Когда каждый пользователь регистрируется на моем веб-сайте, ему будет предоставлена ​​возможность подписаться на 5 различных типов электронных писем, таких как:

  • Я хочу получать электронные письма о новых вещах
  • Я хочу получать ежемесячную новостную рассылку

и т. Д. И т. Д. Я пытаюсь выбрать лучший способ храненияэта информация в базе данных.В настоящее время я думаю о том, чтобы иметь отдельную таблицу с 5 столбцами (по одному на каждое согласие) и значением, являющимся значением bool / bit.

Поскольку информация не будет требоваться регулярно, она потребуется только тогда, когдамы хотим отправить почту пользователю.Есть ли лучшие способы / лучшие практики для того, чтобы сделать что-то подобное?

1 Ответ

1 голос
/ 31 октября 2011

Проблема с вашим предлагаемым дизайном заключается в том, что в будущем становится трудно добавлять новые типы электронной почты; у вас сейчас только 5, но что произойдет, если вы добавите шестое или седьмое?.

Вместо этого я бы предложил что-то вроде:

User Table:
UserID (Primary Key)
User Attributes

EmailTemplate Table
EmailTemplateID (Primary key)
Email Template Attributes

UserEmailTemplates
UserID
EmailTemplateID

Вы можете легко добавлять новые шаблоны и связывать их с пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...