Я разрабатываю систему для обработки отправки транзакционных писем нашим клиентам. Вот как это работает: 1. Событие происходит во время жизненного цикла заказа, например "отправлено" 2. Это событие инициирует создание электронной почты в базе данных (очередь электронной почты). 3. Отдельная служба Windows выполняет опрос db таблицу для отправки новых писем. Когда он находит это, он вызывает веб-службу со всеми необходимыми данными. Это ответственность веб-службы за обработку фактической отправки электронной почты. Мой вопрос относится к шагу 2. Когда возникает событие запуска электронной почты, я должен сделать снимок всех данных, требуемых службой (тем самым дублируя данные и вводить новые таблицы), или я должен получить требуемые данные из транзакционных таблиц db только при точка, где я готов позвонить в веб-службу.
Это полностью зависит от объема данных. Если у вас большой объем данных, переходите к первому решению, которое де-нормализует данные в другой отдельной таблице (возможно, у вас есть дублирование), а затем отправьте электронное письмо.