Я разделил свою программу между хранилищем данных и бизнес-логикой.
В моей базе данных у меня есть две очень похожие таблицы, одна хранит зафиксированные обновления (много записей на объект), а одна запись является временными данными, над которыми я работаю.
Это означает, что когда я загружаю данные, «правильные» данные - это новейшее значение временных данных или зафиксированных данных.
Моя проблема заключается в том, чтобы решить, является ли предоставление этой информации проблемой "хранилища данных" или "бизнес-логики".
Делая адвоката дьявола, я получаю следующие два утверждения.
Проблема с хранилищем данных
Это зависит от структуры данных, чтобы иметь возможность предоставить ответ для извлечения простых определенных запросов данных, как это делается - это хранилище данных. Даже если это делается с помощью сочетания кода и загрузки данных, это нормально, если запрос фиксирован и имеет четкий ответ.
Таким образом, то, как это хранится вместе с временной информацией, не должно быть проблемой для бизнес-логики, это означает, что если я позже реорганизую или переделываю структуру данных, запрос бизнес-логики не изменится. Таким образом, решение состоит в том, чтобы загрузить новейшее значение из обеих форм, сравнить их и вернуть новейшее значение в определенном формате.
Проблема с бизнес-логикой
Решение о том, какие данные самые новые и как они обрабатываются, не является проблемой данных, поэтому код для управления данными должен быть помещен в бизнес-логику, возможно через оболочку (в бизнес-логике), чтобы избежать необходимости рефакторинга большого количества кода в случае изменения. по хранению данных. Таким образом, оба результата следует запрашивать и сравнивать на стороне бизнес-логики, оставляя хранилище данных только для поддержки извлечения данных.
Я сильно склоняюсь к размещению этой логики в хранилище данных, поскольку бизнес-логика запрашивает простую информацию и отправляет запрос, который из-за других проблем было решено хранить определенным образом и, возможно, позже измененные, не должны влиять на бизнес. логическая часть. Так что ты думаешь.
Где бы вы разместили информацию и почему следует использовать / избегать бизнес-логики / хранилища данных для этой задачи?