Схема базы данных для email рассылки (расписание)?
Допустим, есть список пользователей, список статей, и эти статьи сгруппированны по несколько штку в определённую email рассылку, по темам.
Нужно создать таблицу, в которой я смогу указать как часто посылать данные email-ы в каждой из email рассылок. Рассылка начинается после того, как пользователь подписался. Новый пользователь подписался -- рассылка началась.
Например, в subscription1 мылы будут посылаться так:
* 1 день - 1-ый email
* 3 день - 2-ой email
* 4 день - 3-ий email
* 9 день - 4-ий email
....
А в subscription2 можеть быть и так:
* 1 день - 1-ый email
* 1 день, через 3 часа после пред. мыла - 2-ой email
* 2 день - 3ий email
* 2 день, через 12 часов после пред. мыла - 4-ый email
* 12 день, в 14:00 UTC - 5-ый email
---
То есть, промежутки могут быть в часах, днях, неделях, месяцах. И, нужно иметь возможность задать в какое время дня отсылать email.
Вопрос: Как бы вот эту таблицу с расписанием закодить в базе данных?
Просто сохранять "смещение в часах от previous_email"? Не удобно, потому что рассылка может содержать, скажем, 100 email'ов.
Хотелось бы иметь возможность закодить расписание по:
а) часам (1ый мыл - сразу, 2ой - через 3 часа, 3ий - через 8 часов после 2го...)
б) или по дням (1ый мыл - 1ый день, 2ой - 3 дня после второго, 3ий - через 12 дней после 2го...)
в) или дням и часам
г) или дням, но с возможность указания времени суток (на 3ий день в 14:00) д) или недель... и т.п.
Я предлагаю в таблице с расписанием сохранять конкретную дату и время рассылки конкретному пользователю. Чтобы при самой рассылке не заниматься сложными вычислениями.
А для удобства формирования рассылок сделать отдельную таблицу с шаблонами. Точнее, две таблицы — сам шаблон и его строки с расписанием. Там указывать смещение и прочие детали.
> Я предлагаю в таблице с расписанием сохранять конкретную дату и время рассылки конкретному пользователю. Чтобы при самой рассылке не заниматься сложными вычислениями.
Подписался новый пользователь. Откуда ты предлагаешь брать даты и время, что это всё посчитать для этого нового пользователя?
LetsExtract Email Sender (вот) помогает мне сохранить организованными мои контакты. Я могу легко импортировать свои списки получателей из различных форматов файлов и использовать дополнительную информацию, такую как пол и возраст, для персонализации сообщений. Благодаря визуальному редактору, я могу создавать как красочные HTML-письма, так и аскетичные plain-text сообщения, что помогает привлечь внимание аудитории. LetsExtract Email Sender действительно удобен и гибок в использовании!