我试图设置一个数据库模式,其中对象可以接收喜欢的东西。 我经常需要访问任何给定对象的喜欢总数。如何在关系数据库中实现“喜欢的数量”
我设置两个表:
[OBJECT]
id
path
desc
[LIKES]
obj_id
user_id
timestamp
它将使SENCE给我实现一个场“nr_of_likes”的对象表,那将是每一个新行插入喜欢的时间增加表。 这应该比每个对象的喜欢数要快得多,对吧? 问题是我得到了多余的数据,通常从我研究的内容来看,这并不好。 有关这类事情的一些最佳实践是什么?可以实施“nr_of_likes”字段吗? 谢谢您分享您的意见!
其被称为去归一化或记忆,经常因为性能原因而被使用 –
将一个包含喜欢的总数的列添加到表中而不是获得COUNT()并不理想。虽然阅读速度可能会更快,但您必须考虑到每次数字更改时都必须不断维护该列。另外,你会失去谁喜欢它的所有概念,以及何时。冗余数据并不总是很糟糕,但您认为在这种情况下冗余数据是什么? – Siyual