Zap212
@Zap212

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Webフレームワークでの、DB構造以外のクエリ管理

相談内容:内容操作のクエリ管理の場所・手段

Webフレームワークで、データベースの構造ではなく、内容を操作する場合のクエリはどこで管理するのが良いのか、、と思い皆様の意見聞きたく質問です。

現在、自分はLaravelを使っています。
Laravelではシーダという機能があるため、シーダを作成してDatabaseSeederには登録せずにartisanコマンドから別個で呼び出すようにしています。

ソースコード管理を行っている理由としては自身のクエリや処理の結果を「なぜ」と思ったときに極力振り返れるようにするためです。
また、生のSQLでは大量のレコードを取り扱うためにはoffset等の調整が必要になりクエリが膨張し、ミスやバグの原因になってしまうため、それを防ぐためにフレームワークを通したいという思いもあります。
(モデルで制約をかけておくことで、万が一テーブル定義の漏れがあってもバグを防ぎやすい)

とはいえ、シーダという機能は本来「初期値の投入」のためのものなので用途を超えた使い方になってしまっています。
こういった場合、皆さんはどういった方法で対応しているのでしょうか。

ご意見お待ちしております。

0

ごく簡単なアプリケーションならModelやControllerで十分だと思いますが、より複雑なアプリケーションの場合はリポジトリパターンを検討されてはいかがでしょうか?
これにより永続化されたデータに対する処理を分離することができます。
リポジトリパターンの詳細はドメイン駆動設計などで解説されています。

こちらの記事ではLaravelを使用した具体例付きで説明されています。
リポジトリパターンと Laravel アプリケーションでのディレクトリ構造

1Like

Your answer might help someone💌