评论功能用关系型数据库做应该如何设计层次模型和点赞?

2015-06-26 22:09:12 +08:00
 phx13ye
最近想研究评论功能,发现表结构很难设计

adjacency list model要用很多self-join
看了一种Nested Set Model,用一个左右表示范围,但修改几乎都要用到存储过程,感觉查询出来也不好和对象映射
是不是只有NOSQL才比较方便做这种对象
```
class Comment {
List<Comment> reply;
}
```

还有点赞系统能指点一下吗,个人的想法是用一张表保存comment_id,user_id,[like|dislike],但是这样好像不方便做匿名点赞
4012 次点击
所在节点    问与答
7 条回复
nino789pzw
2015-06-27 02:04:30 +08:00
一个table用来记录userid posterid articleid comment这种怎么样?
decken
2015-06-27 09:44:37 +08:00
@nino789pzw 评论的层级关系怎么体现?
caoyue
2015-06-27 12:06:59 +08:00
看实际情况,写压力较大的话 adjacency list model 方便点,读的时候做个缓存就好了

匿名也不是真匿名,还是要存 user_id 的,不然不是可以无限点赞么……用个字段标识是否匿名就行了吧?
phx13ye
2015-06-27 14:36:14 +08:00
哪种方式好查询方便转换成这样形式的数据
<ol>
..<li class="depth-0">comment1
....<ol>
......<li class="depth-1">comment2
........<ol>
..........<li class="depth-2">comment3
..........</li>
........</ol>
......</li>
......<li class="depth-1">comment4
......</li>
....</ol>
..</li>
</ol>
phx13ye
2015-06-27 16:51:11 +08:00
@caoyue imgur的点赞可以不登陆,它记录了IP吗?
nino789pzw
2015-06-29 09:21:29 +08:00
@decken 每个comment添加comment id?然后通过timestamp 以及userID来维护?求教 是否有什么实际经验可以分享?
decken
2015-06-29 11:22:10 +08:00
@nino789pzw 目前我一个项目中使用的也是这种方式,应该还有更好的办法.

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

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

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

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

© 2021 V2EX