打算做个评论功能,表结构该如何设计?求助各位大神。

2015-06-26 14:01:54 +08:00
 yangwenqian
我的网站有个文章列表页,没有内容页。
评论是显示在每条记录下面的。
每次打开这个列表页,加载的顺序是:
①根据用户id,查询该用户id下的文章列表。
②根据该列表中每一篇文章,依次去查询评论。
③组合到页面,列表页才显示出来。
数据少的时候,就没什么感觉。但文章多、评论多的话,效率就不行了。缓存、静态那些倒是有,现在就纠结数据库这块。
传统的网站,评论都是在内容页显示的,就不存在这个问题。我的网站评论是在列表页显示,求助该如何设计表?
6693 次点击
所在节点    MySQL
10 条回复
sharewind
2015-06-26 15:31:13 +08:00
直接用第三方的评论系统不就好了
qiayue
2015-06-26 15:43:12 +08:00
假设有十篇文章,你先循环一遍把十个文章 ID 拿到手
然后去评论表找评论 where article_id in (1,2,3,4...) 括号里是十个文章 ID
这样查询评论表,就只需要查询一遍,不需十遍
kaneg
2015-06-26 18:05:34 +08:00
你可以在页面先只加载列表,然后每个列表的评论在通过ajax异步加载,甚至只显示评论数量,让用户点击查看评论再去加载。这样就可以省去很多无用的消耗,因为不是所有的评论都会有人去看的
em70
2015-06-26 18:13:30 +08:00
给文章表加一个字段,把当前评论生成HTML代码放这个字段里,每次显示文章再显示这个字段的内容作为评论就行了,每次用户为这个文章发表评论都更新这个文章记录下的这个字段的内容即可. 因为发评论的人远远少于看评论的人,大量的资源可以节约下来.
ClearGC
2015-06-26 22:22:03 +08:00
disqus 和 多说 欢迎你
withrock
2015-06-27 19:49:04 +08:00
感觉用非结构化数据库更容易解决你这个问题。
每个item 都是文章+评论列表,这样就不用考虑你所说的这个问题了。
withrock
2015-06-27 19:49:46 +08:00
不好意思,才看到这个在MySQL分支下,请直接忽略我的上一个回答。
akira
2015-06-28 02:46:37 +08:00
一分钟刷新一次列表页,性能在怎么低也足够了吧
dododada
2015-06-28 15:31:57 +08:00
上nosql
realpg
2015-06-29 11:31:22 +08:00
一个文章entry只显示20条评论,多于20条的做一个ajax的展开功能,这个单文章评论展开就是基于article_id调用单表索引检索了,性能很好
20条评论本身,在article表里面做一个冗余,记录20条评论内容

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/201363

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX