データベースにはすでに多くの既存データがあり、ユーザーの行動に基づいて各ユーザーのスコアを計算するポイント メカニズムを開発したいと考えています。
私はこの機能をプラグイン可能な方法で実装しているため、エンティティが変更されると、メイン ロジックから独立し、送信される Spring イベントに依存します。
問題は、既存のデータをどうするかです。今からポイントを集めるのではなく、今までのすべてのデータを含めたいと思います。
これを行うための最も実用的な方法は何ですか? index() メソッドを提供するようにプラグインを設計する必要があります。これにより、システムはデータベースからすべてのエンティティを取得し、EntityDirtyEvent を送信して、ポイント プラグインを起動し、更新する必要があります。各エンティティの横にポイントを保存できるようにします。その結果、多くのオーバーヘッドが発生する可能性がありますよね?
最も簡単なのは、複雑なストアド プロシージャを作成し、そのストアド プロシージャを index() で呼び出すことです。しかし、それは私には悪いことのようにも思えます。ポイントを計算するためのロジックはとにかく Java で書かなければならないのに、なぜもう一度 SQL で書く必要があるのでしょうか。また、一般的に、私はビジネス ロジックを異なるレイヤーに分割することは好きではありません。
誰もこれを以前にやったことがありますか?助けてください。