Как мне проверить данные, попадающие в несколько таблиц, которые все зависят друг от друга?
У меня есть сайт дебатов, где пользователи могут начать дебаты и со своими дебатами представить «варианты опроса», чтобы люди могли выбрать вариант, отвечая на дебаты.
Процесс проверки происходит следующим образом: модель дебатов подтверждает, что столбцы, специфичные для таблицы дебатов, действительны (тема и текст). Модель опций подтверждает, что опции, предоставленные в обсуждении, действительны (текст). Модель категорий подтверждает, что категория, предоставленная пользователем для этого обсуждения, действительно существует.
Я проверяю, что все существует, прежде чем добавлять что-либо в базу данных. Поэтому, добавляя дебаты, я бы удостоверился, что категория существует. Добавляя опцию опроса к дискуссии, я хочу убедиться, что дискуссия существует.
Проблема возникает при одновременном создании новой дискуссии с опциями опроса. Делая так, чтобы дебаты существовали до добавления новой опции, я в конечном итоге в ловушке-22. Дебаты не будут добавлены (и, следовательно, не будут существовать), если все не будет проверено, а параметры опроса не будут подтверждены, если дебаты не существуют, потому что для привязки необходим идентификатор дебата.
Должен ли я удалить эту логику из опций моего опроса? Что мне делать?