読み取り専用データベースビューはリポジトリパターンにどのように適合しますか? 質問する

読み取り専用データベースビューはリポジトリパターンにどのように適合しますか? 質問する

例: データベースに「CustomerOrdersOnHold」という SQL ビューがあります。このビューは、特定の顧客と注文データ フィールドのフィルターされた組み合わせを返します。アプリケーションでこのビューからデータを取得する必要があります。このようなビューへのアクセスは、リポジトリ パターンにどのように適合しますか? 「CustomerOrdersOnHoldRepository」を作成しますか? このような読み取り専用ビューは、集約ルートと見なされますか?

ベストアンサー1

読み取りリポジトリを分離し、できればFinderまたはReaderに名前を変更することをお勧めします。リポジトリは読み取り専用データのクエリではなくドメイン使用を目的としています。この記事そしてこれFinder の分離された形式のリポジトリの使用方法を説明します。

読み取りモデルと書き込みモデルのアーキテクチャを分離することもお勧めします。CQRSそしてそこには

このアーキテクチャにより、データ ストレージやイベント ソースの使用に関しても、読み取りモデルと書き込みモデルを分離できます。

中間的な解決策としては、リポジトリとファインダーを分離するだけで、データベースを分離する複雑さなしに、いくつかのCQRS概念を活用できます。こちらをお読みください。役職

このタイプのソリューションのサンプル(同じデータベースを使用するが、ファインダーをリポジトリから分離する)については、以下を確認してください。このサンプル

おすすめ記事