Как спроектировать БД для обслуживания запросов пользователей?
================================================================

 Существует некоторая сущность *Конфигурация* с набором параметров, которой управляет пользователь. Для простоты, конфигурация сервисов внутри VPS, в которой указывается количество единиц CPU, Memory, Storage для каждого сервиса. И в нашей системе храним эти конфигурации.  

  

При помощи запроса пользователь отправляет заявку на размещение ресурсов в VPS. Третья сторона проверяет возможно ли это и если да, то выполняет адаптацию под новую конфигурацию или же получаем отказ. Если отказ, значит мы не можем сменить конфигурацию. С другой стороны, пользователю нужно дать возможность скорректировать свою конфигурацию и мы не можем просто выкинуть ее.  

  

1. Есть ли какие-то шаблоны проектирования для обслуживания таких запросов?  

2. Нужно ли хранить в БД оба состояния: текущее и желаемое?  

3. Создавать новую сущность по типу транзакции? Или другие мысли?  

  

Буду рад примерам, а также ссылкам на статьи, шаблоны проектирования, которые смогут помочь для решения проблемы. 

 если заявка на новую конфигурацию создается на основе существующих то так:  

Пользователь - Конфигурация  

Пользователь - Заявка - Конфигурация  

  

если заявка на новую конфигурацию строится кастомно, то  

Пользователь - Конфигурация  

Пользователь - Заявка(Конфигурация в поле например в json)