最佳数据库模式结构

Optimal database schema structure

我正在 论坛 Web 应用程序 Laravel。

当用户在主题页面时,每个主题 都会显示附加的关系数据,例如 post 的数量[=31] =] 在主题中,last post 甚至是主题最后 postauthor。

考虑到每个主题都会有深度嵌套的关系数据,是否可以通过关系访问这些属性或者我应该将这些数据存储在主题 table 的 单独列 中,以实现 正常 性能?

我知道 将数据直接存储在父 table 中会更好,但是 必须 吗? 性能规范化方面的最佳实践是什么?

规范化方面的最佳做法是通过关系获取所有数据。

就性能而言,您应该缓存任何计算成本高的内容。

我会编写一个计划作业,每隔几分钟用所有主题的新数据更新缓存。

这里有关于 Laravel 的 caching and task scheduling 的更多信息。