关于存储文章的表的 scheme 和列表显示的问题探讨

需求说明

一个文章列表页,要求显示标题和文章开头部分大约200字左右

问题探讨

如果列表页显示的时候把所有文章内容都读出来是不是太浪费了资源了,如果不这么做怎么取得文章开头的部分内容?

方案

  • 方案1,设计表结构时候单独加一个字段比如overview,入库的时候从正文截取开头200字存入这个字段?
    这样的好处就是取文章列表不需要把整个正文全部取出,坏处就是冗余了部分内容。

  • 方案2,直接取出整个正文

  • 方案3,在sql语句上做手脚,比如用mysql 的left(str,num) 函数截取。

总结:

个人比较倾向方案3,不知道有没有什么坏处?

大家怎么看,有更好的方式吗? 强大的社区给我力量吧!

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
Summer

不提倡第三种做法, 数据库就是拿来做存储的, 尽量少用数据库专属的函数.

建议参照 Phphub 的实现方案, 在数据库里面放多 excerpt 字段, 在创建和修改的时候调用 截取 , 显示的时候, 如在 description tag 直接显示.

类似于第一种方案, 文章修改的几率 5% 都不到, 很多文章, 生成一次就算完了, 而读取确实经常发生的, 每一次都得重新计算, 虽然不是什么耗 CPU 的工作, 但是还是觉得没必要.

8年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!