关于网站的评论,留言功能是怎么开发的?

2018-03-04 08:44:52 +08:00
 TANKING
单页面的评论功能我知道怎么做,但是如果我的网站是一个博客,每发表一篇文章,底部都会有一个评论输入框,所以,我每发布一篇文章,都得向数据库新建一个表吗?还是只需要一个表,可以存放所有文章的底部评论?
5529 次点击
所在节点    程序员
28 条回复
orangeade
2018-03-04 10:16:05 +08:00
去看一下一些开源项目就知道了,比如 WordPress
bbzt
2018-03-04 10:17:22 +08:00
很简单啊,搞得我都想去做个收费的云评论服务
MonoLogueChi
2018-03-04 11:09:40 +08:00
前面说的很清楚了,大概就是每篇文章要有一个唯一的 key,这个 key 怎么产生你随意,加载评论的时候就是在数据库里搜索这个 key。而且每条评论也要有一个唯一的 key,回复评论的时候需要用到这个 key。
coffeSlider
2018-03-04 11:10:24 +08:00
@bbzt 那么多免费的评论插件,你还想做收费的?
lewis1990
2018-03-04 13:28:05 +08:00
@loading 正解,那如果再涉及到评论回复的又该怎么设计?
locoz
2018-03-04 17:34:50 +08:00
一般都是文章一个 ID 加载评论的时候用文章 ID 去查对应的评论
评论自己有一个 ID 然后有一个上一层级的 ID (可以是文章的也可以是评论的)
文章跟评论两个表解决
crossoverJie
2018-03-04 21:38:03 +08:00
@lewis1990 #25 回复类似 如果只是一个树状结构 只需要增加一个 pid 即可。
sensui7
2018-03-04 23:00:25 +08:00
1. 关系型数据库, 每发布一篇文章, 新建一条评论记录存储在评论表里. 每条记录包含一个文章 id, 这样文章和评论就关联了起来.

2. nosql 数据库,

1) 每篇文章嵌入一个子文档数组, 数组中每个子文档是一条评论. 优点是取文章时可以直接取得它的全部评论, 缺点是容易撑爆文档容量限制.
2) 每篇文章包含一个数组, 数组存储的是评论 id. 评论在另一个表中存储.
3) 每篇文章包含一个数组, 数组存储的是 bucket id, 每个 bucket 文档存储评论, bucket 大小按照分页设置, 一个 bucket 就是一页评论.
4) 每条评论包含一个文章 id, 效果和关系型数据库一样.

以上就是 1: N 数据库的处理方法.

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

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

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

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

© 2021 V2EX