我是否应该在图像表中存储评论/喜欢/不喜欢的次数?

时间:2018-07-20 22:20:51

标签: php laravel eloquent

我应该通过在每条新的comments/likes/dislikes记录之后更新它们来在图像表中存储like/dislike/comment的数目

每次需要知道计数时,我是否应该只查询Vote::where('image_id', $this->id)->where('vote', true)->count();之类的信息?

1 个答案:

答案 0 :(得分:2)

这实际上取决于实际情况(例如,您要存储和期望多少数据),并且两种情况都被两种碰撞原理所见。

参数一:不保存可计算的数据。如果您可以保存一系列事件(例如所有投票),则始终可以从中扣除总数。但是,这样做的缺点是,在具有大量数据的应用程序中它可能会变慢。

参数二:请保存所需的数据。根据您使用的是哪种持久性层,每当更改数据时保存数据可能是一个好主意。例如。 MongoDB确实有一种“只存储所需内容”的方法。优点:即使在具有大量数据的应用程序上,这也将具有良好的性能,因为您无需即时计算任何内容,而只需输出数字即可。

TL; DR:这实际上取决于您的应用程序可能更难以解决的因素。