我的數據庫中已經有很多現有的數據,並且想要開發一個積分機制,它根據每個用戶的行爲計算得分。在春天設計一個積分系統
我以可插拔的方式實現了這個功能,因此它獨立於主邏輯,並且一旦實體被修改,就依靠發送Spring事件。
問題是如何處理現有數據。我不想從現在開始收集點數,而是直到現在包括所有數據。
這樣做最實際的方法是什麼?我是否應該設計我的插件,以便提供一個index()方法,這會強制我的系統從數據庫中獲取每個實體,發送一個EntityDirtyEvent,爲每個實體啓動點插件,然後更新它讓點被保存在每個實體旁邊。這可能會導致很多開銷,對吧?
最簡單的事情就是創建一個複雜的存儲過程,然後使index()調用該存儲過程。不過,在我看來,它也是一件壞事。因爲我將不得不編寫計算java中的點的邏輯,爲什麼再次使用SQL呢?另外,總的來說,我不是將業務邏輯分解到不同層的粉絲。
有沒有人做過這個?請幫忙。