我将用户的评分计算为拥有的项目数量的总和,但我的方式很慢

I calculate user's rating as a sum of item's numbers the possess, but my way is very slow

我有一个 table 'users',其中包含常用字段加上 'owned_items' 和 'rating' 字段,还有一个 table 'items' 及其 ID,和其他一些属性。用户可以拥有每种类型的许多不同物品,其评级是通过将所有这些数量相加计算得出的:

评分 = N1 + N2 + N3 + ...

我将用户拥有的项目存储为以下类型的字符串:

3 4 56 22 6 67 ...

在字段中 'owned_items'。

然后,如果我需要评级(非常频繁),每次我将字符串转换为数字数组,计算它们的总和并将值写入 'rating' 字段。为给定用户更改每种类型的项目数也是如此。

有没有更好的办法?可能正在使用 'users' 和 'items' tables?

之间的关系

谢谢。

必须遵循此示例,然后一切正常,即创建一个包含附加字段的联接 table:

https://book.cakephp.org/3.0/en/orm/associations.html#using-the-through-option