Mysql 我计算用户';s评级为项目';这是数字,但我的路很慢

Mysql 我计算用户';s评级为项目';这是数字,但我的路很慢,mysql,cakephp,database-relations,Mysql,Cakephp,Database Relations,我有一个表“users”,其中包含常用字段、owned_items和rating字段,还有一个表“items”,其中包含id和一些其他属性。用户可以拥有每种类型的许多不同项目,其评级通过将所有这些金额相加计算: 额定值=N1+N2+N3+… 我将用户拥有的项目存储为以下类型的字符串: 34562267… 在“自有物品”字段中 然后,如果我需要评级(通常),每次我在一个数字数组中转换字符串时,计算它们的总和,并将值写入“评级”字段。更改给定用户的每种类型的项目数也是如此。 有更好的办法吗?可能正在

我有一个表“users”,其中包含常用字段、owned_items和rating字段,还有一个表“items”,其中包含id和一些其他属性。用户可以拥有每种类型的许多不同项目,其评级通过将所有这些金额相加计算:

额定值=N1+N2+N3+…

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

34562267…

在“自有物品”字段中

然后,如果我需要评级(通常),每次我在一个数字数组中转换字符串时,计算它们的总和,并将值写入“评级”字段。更改给定用户的每种类型的项目数也是如此。

有更好的办法吗?可能正在使用“用户”和“项目”表之间的关系


多谢各位

必须遵循此示例,然后一切正常,即创建包含其他字段的联接表:


将数据存储为一列文本是有史以来最糟糕的想法(CSV/空格分隔)。现在你需要用一些难看的方法来解析它,然后求和。数据应该是原子的,请阅读有关数据规范化的内容,并在将来节省时间,询问它为什么工作得这么慢,或者如何更新字符串中的特定值。@lad2025。在数据库之外还有一些更糟糕的想法,但这在这个领域肯定是一个非常糟糕的想法。@GordonLinoff我真的很好奇你遇到的其他噩梦(嵌套和/或多个触发器/滥用游标/eav everywhere/重用文件/逐行处理/…)?谢谢,我开始阅读有关数据规范化的内容,并将阅读更多内容,希望找到更好的方法。我是否正确理解我需要另一个包含“user\u id”、“item\u id”和“amount”列的表?因此,前两者的结合是独一无二的。