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

需求说明#

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

问题探讨#

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

方案#

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

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

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

总结:#

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
Summer

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

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

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

9年前 评论