我应该在我的图片表中存储评论/喜欢/不喜欢的数量吗



我是否应该在每次新的like/dislike/comment记录后更新comments/likes/dislikes的编号,将其存储在图像表中

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

这实际上取决于实际情况(例如,您存储和期望的数据量(,还有两种相互冲突的哲学,两者都有。

论点一:不要保存可计算的数据。如果你能保存一系列事件(例如所有投票(,你总是可以从中扣除总数。然而,这样做的缺点是,在数据量大的应用程序上,速度可能会变慢。

论点二:一定要保存所需的数据。根据您使用的持久性层的类型,在数据更改时保存数据可能是个好主意。例如,MongoDB确实有一种"只存储您需要的东西"的方法。优点:即使在具有大量数据的应用程序上,这也会具有良好的性能,因为您不必实时计算任何内容,只需输出数字即可。

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

最新更新