何かが起こったときにデータベース内の行がいっぱいになるシステムがあるとします。
- ユーザーが単純にログインすると、テーブルにログインの種類と時刻を含む行がデータベースに挿入されます
user_logins
。 - オペレーターがユーザーを呼び出すと、オペレーター ID、ユーザー ID、および日付を含む行がテーブルのデータベースに挿入されます
outgoing_calls
- オペレーターがユーザー呼び出しに応答しない場合、日付、ユーザー ID、およびタイプ呼び出しを含む行がデータベースに挿入されます
次に、ある期間、たとえば 1 か月が経過した後、誰が誰に電話をかけたか、応答しなかった電話の数などに関するレポートが必要になります。この機能を編成するには、どのようなパターンを使用する必要がありますか?
一見、このプロセスは多くのログを記録しているように見えますが、ログとは、何らかの形式 (date-processId-messageWithPlaceHolders) でメッセージを保存するときのプロセスです。そのため、ログシステムを使用することはあまり適していません。
別の見方をすると、イベント処理のように見えますが、「イベント」が発生したときにアクションを実行する必要はなく、リスナーもキューもありません。さらなるレポートのためにデータベースに保存するだけです。
では、この機能を効果的に実装するには、どのようなパターンまたは手法を使用する必要があるでしょうか?