2014-12-30 3 views
0

Если я собираюсь разделить мое приложение на стороны чтения и записи, используя принципы CQRS, как бы вы справлялись с ситуацией с «динамическим» сценарием для чтения? Например. У меня есть продукт, который состоит из нескольких свойств чтения (id, title, slug и т. Д.), Но для того, чтобы отобразить его пользователю, мне нужно передать его цену, которая рассчитывается службой домена (к которой я передаю страну посетителя и валюту)? Я не могу сохранить эту цену в базе данных, потому что пользователь может свободно менять свою валюту в любое время, когда он хочет + цены меняются довольно часто. Таким образом, моя модель конечного продукта должна быть в основном составной частью колонок raw-SQL (id, title, slug) и расчетной цены. Должен ли я использовать ту же модель представления, которую я получаю из базы данных, и использовать шаблон обогащения контента, или я должен создать новую модель представления для моего композита?Модели динамического просмотра

ответ

0

Изменение цены продукта - КОМАНДА, он должен обновить цену, которую вы храните в базе данных, которую вы затем QUERY в любое время.

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

Для конвертации валюты, поскольку вы говорите, что пользователь может изменить валюту в любое время, тогда вы должны запросить весь список курсов валют и выполнить расчет самостоятельно на стороне клиента. В качестве альтернативы вы можете запросить базовую цену, а затем запросить текущую ставку. И если пользователь изменяет валюту, вы просто запрашиваете курс снова, но сохраняете ту же базовую цену.

Смежные вопросы