我目前正在开发与Instagram非常相似的应用程序。
这些关系是:
然后他们应该根据订阅获得带有帖子的个性化提要。
我花了很长时间才提出合适的数据库结构,但我仍然不确定这是否是最佳方法。请看看,让我知道您的想法。
users (col)
- user_id (doc)
- posts (col)
- post_id (doc)
-> contains only post id
- followed_users (doc)
- user_id (doc)
-> contains only user id
- feed (col)
- post_id (doc)
-> contains only post id
hashtags (col)
- hashtag_id (doc)
- posts (col)
- post_id (doc)
-> contains only post id
posts (col)
- post_id (doc)
-> contains full post
然后我将编写一个云函数来填充每个用户的提要集合,每次添加新帖子时都会触发该提要集合。
在加载Feed时,前端将有多个db调用:一个调用以获取帖子ID(用户/订阅源),另一个调用每个帖子的内容(posts / id),如以下样机代码所示:
posts = getData($userid/feed).limit(10)
posts.each:
getData(posts/$post.id)
对于成本效率和性能来说,这是否可行?