多关系社交网络的Firestore数据库结构

时间:2019-02-10 15:48:59

标签: firebase nosql google-cloud-firestore

我目前正在开发与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)

对于成本效率和性能来说,这是否可行?

0 个答案:

没有答案