创建/销毁查询是否比编辑/更新快?
如果我们想在post中添加like功能,最好创建一个具有user_id和post_id列的新表"likes",还是在post表上创建一个新列likes_number?
非常感谢。
这在很大程度上取决于许多不同的参数,但通常要考虑以下因素:
-
是否存在特定于标志的元数据?在点赞的情况下,可以有:制作点赞的用户,点赞发生的时间戳作为示例。在post表中跟踪这些数据需要为每条数据设置一列。如果你想存储这个元数据,那么你应该使用另一个表。
-
是否存在一对多关系?在这种情况下,可能有很多相似的人。这表明另一个表中的一行可能具有值。每一行都存储类似的元数据。
-
表的使用情况如何?锁定会对性能产生影响吗?在您的情况下,我对此表示怀疑,但锁定行以更改同类计数可能会导致性能问题。如果相同的数据在不同的表中,则没有影响。
对我来说,很明显,在这种情况下,另一个表是有意义的。
其他类型的数据可能是另一种方式——例如,todo列表中正在完成的任务的标志。在这种情况下,只添加一列是有意义的。
至于创建/销毁与编辑/更新,这在很大程度上取决于许多细节,但我想说,总的来说,编辑/更新更快。