@odin8812

Схема базы данных для 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) д) или недель... и т.п.

Гибко, то есть.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ComodoHacker
Я предлагаю в таблице с расписанием сохранять конкретную дату и время рассылки конкретному пользователю. Чтобы при самой рассылке не заниматься сложными вычислениями.

А для удобства формирования рассылок сделать отдельную таблицу с шаблонами. Точнее, две таблицы — сам шаблон и его строки с расписанием. Там указывать смещение и прочие детали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы