我必须创建一个类似的系统(名称不会像“喜欢”,Facebook拥有它)。 所以我想象了两种在我的数据库中存储这些喜欢的方法,我想知道,对于流量非常高的站点,哪种方式更好。
我认为第二名可能更快更聪明,但你怎么看待这个?
答案 0 :(得分:1)
第一个选项要好得多,因为您可以获得关系设置的好处。例如:如果您想从userId x喜欢的数据库中获取注释,该怎么办?通过第一次设置,这是一个快速而简单的查询。在第二种情况下,您将不得不使用LIKE,这会慢得多且不准确。 (想象一下userId为1,注释表中的likes字段包含#10 - 如果您使用LIKE'%1%',它将返回注释。)
即使是高流量的网站;只需在commentId上使用索引就可以使其快速运行。
所以选择第一个选项。
如果你真的怀疑第一个选项的速度,可以在评论表中创建一个“缓存”字段,在其中计算喜欢的数量,这样你就不必执行子查询来选择相同的数量