2010-01-04 2 views
2

Мой сайт позволяет анонимно регистрировать список рассылки. Тот же список рассылки также отправляется зарегистрированным пользователям.Схема данных списка рассылки

Проблема заключается в том, что анонимный пользователь переходит к зарегистрированному пользователю. Я не хочу спамить один и тот же адрес электронной почты дважды.

Моя пользовательская таблица выглядит следующим образом:

CREATE table users (

user_id integer not null primary key, 

email varchar(100) not null unique, 

first_name varchar(100) not null, 

last_name varchar(100) not null, 

dont_spam_me_p char(1) default 'f' check (dont_spam_me_p in ('t','f')), 

password varchar(30) not null, 

registration_date timestamp(0), 

registration_ip varchar(50) 

); 

Так как я должен идти об определении таблицы mailing_list?

ответ

1

Нет причин для осложнения вашей схемы, чтобы предотвратить дублирование доставки. При отправке по электронной почте бюллетеня собирайте все адреса электронной почты (как из анонимных, так и из зарегистрированных источников), удаляйте дубликаты и отправляйте рассылку на каждый уникальный адрес.

+0

Хорошее предложение. Я бы сделал это в базе данных, а не в приложении. слой. Что ты думаешь? –

+0

Для решения этой проблемы может потребоваться хранимая процедура или представление. Представление может быть проще всего создавать и поддерживать. –

Смежные вопросы