关于存储文章的表的 scheme 和列表显示的问题探讨
需求说明
一个文章列表页,要求显示标题和文章开头部分大约200字左右
问题探讨
如果列表页显示的时候把所有文章内容都读出来是不是太浪费了资源了,如果不这么做怎么取得文章开头的部分内容?
方案
-
方案1,设计表结构时候单独加一个字段比如overview,入库的时候从正文截取开头200字存入这个字段?
这样的好处就是取文章列表不需要把整个正文全部取出,坏处就是冗余了部分内容。 -
方案2,直接取出整个正文
-
方案3,在sql语句上做手脚,比如用mysql 的left(str,num) 函数截取。
总结:
个人比较倾向方案3,不知道有没有什么坏处?
大家怎么看,有更好的方式吗? 强大的社区给我力量吧!
不提倡第三种做法, 数据库就是拿来做存储的, 尽量少用数据库专属的函数.
建议参照 Phphub 的实现方案, 在数据库里面放多 excerpt 字段, 在创建和修改的时候调用 截取 , 显示的时候, 如在 description tag 直接显示.
类似于第一种方案, 文章修改的几率 5% 都不到, 很多文章, 生成一次就算完了, 而读取确实经常发生的, 每一次都得重新计算, 虽然不是什么耗 CPU 的工作, 但是还是觉得没必要.