1

我正在寻找处理这个问题的最佳方法。

您会在论坛表和主题表中创建一个名为 eg: num_postsand的列,还是使用查询来计算主题和帖子的数量?与用户表中的列相同。对于其他所有事情,例如获取特定论坛中的最后一张海报和日期,以及主题等。num_topicsnum_postsnum_posts

正如我所看到的那样,不好的一面是每当用户删除帖子/主题时我都必须更新它们。就像他们删除帖子一样,我必须将论坛中的 last_post 列更新为上一篇帖子的发布日期,更新主题,更新用户,而我不必这样做。但表现如何?

什么是最佳实践?

4

1 回答 1

0

两者都有效。

这里没有最佳实践,这主要取决于表的设置和索引方式、RDBMS 的反应方式以及数据库的负载有多大。

如果索引正确,每次查询您的表以获取这些数量的帖子或主题不应大大减慢整个加载过程。如果配置,现代 RDBMS 会将这些查询放入查询缓存中,因此这将进一步加快速度。

但是,我知道某些论坛引擎(如 phpbb)实际上在表中具有您所描述的这些数字。据我所知,他们这样做是为了不过度依赖数据库(不同的 RDBMS 反应不同)。所以这样做并没有错。

我个人的偏好是让数据库完成这项工作,并避免编码开销函数以尽可能长时间地更新这些字段。

于 2013-07-08T04:17:33.343 回答