1
geelaw 2017-08-02 18:05:03 +08:00 via iPhone
请先把你的问题描述清楚
|
2
nutting 2017-08-02 18:07:52 +08:00
这种一般都是 key value 的数据吧
|
3
breadenglish 2017-08-02 18:08:59 +08:00
mongoDB 之流
|
4
whatsmyip 2017-08-02 18:29:32 +08:00
redis list 就可以做到吧
|
5
sobigfish 2017-08-02 18:36:14 +08:00
timeline 列表里获取每个点赞的用户是伪需求吧, 只要知道个数就行了 cache 一下点赞数
|
7
klausgao OP |
8
casparchen 2017-08-02 21:23:53 +08:00
graph database 最适合这种了
|
9
ericbize 2017-08-02 21:55:48 +08:00
我就记得 上 Database system 的时候老师说过,当年 FB 被点赞点到数据库挂了。
|
10
owenliang 2017-08-02 22:42:41 +08:00
文章表,点赞表,留言表,根据文章 ID 查出点赞和留言。。。不知道楼主说的循环是什么意思。。
|
11
iyaozhen 2017-08-02 22:51:06 +08:00 via Android
[再通过内容的 ID 循环取出各个内容的点赞人和回复的内容,但是这样的效率就很低了。 ]
不慢吧,每个内容的点赞人和评论存 MySQL 的话一把也就差出来了 |
12
iiduce 2017-08-02 22:51:34 +08:00
在 mongodb 中使用 EmbeddedModelField 字段放置点赞信息 model,同时最好添加一个点赞数字段。
如果是 sql 数据库,应该使用存储过程?好些年没用 sql 了,记不清了。 |
15
iiduce 2017-08-02 22:54:54 +08:00
更正:mongodb 应该是放置 ListField(EmbeddedModelField(赞 model), null=True, blank=True)
我的系统中是这样写的: favorites = ListField(EmbeddedModelField(favorite), null=True, blank=True) favorite_num = models.IntegerField(u'喜欢数目', default = 0, db_index=True) |
16
geelaw 2017-08-02 23:43:54 +08:00 via iPhone
可以 join 啊……你把状态的表和评论的表 join 一下咯,这样就会得到状态和每条评论,然后再按状态分组,格式化,返回。
|
17
rootx 2017-08-03 01:43:10 +08:00 via iPhone
key-value 形式存 json 数据如何?只要取出当前 ID 的 value 数量和内容就都出来了。
|
21
zacard 2017-08-03 13:46:46 +08:00
这个应该是异构数据存在例如 redis 的系统中,一次就把点赞、留言内容等都取出来
|
22
ty89 2017-08-03 13:59:48 +08:00
《会的太少 想的太多系列》
|
24
sobigfish 2017-08-03 14:59:34 +08:00
@klausgao #23 微信的列表里比你想的更复杂,因为只显示共同好友的回复内容
所以专门为每个用户生成了他浏览的 timeline 可以看看这个 www.infoq.com/cn/presentations/technology-of-weixin-moments InfoQ 首页 演讲 微信朋友圈技术之道 www.infoq.com/cn/articles/three-people-background-team-and-billions-daily-release 摘要 |
25
v9ox 2017-08-03 15:00:39 +08:00 via iPhone
某点赞公司路过
php 端确实是俺楼主所说 先抓 post 然后每个 post 去获取点赞 后端的设计是 graph 和 sql 具体的还没看过 |
27
klausgao OP |
29
klausgao OP @ty89 看看大家的回帖,不是什么人都像你那么自以为是眼高手低的,这个是程序员节点,不是水区,相互学习吧。
|
30
ppwangs 2017-08-03 17:36:16 +08:00
把点赞当成评论的一种
|