分层(Firebase)数据库结构,'帖子/用户'或者'用户/帖子'?

时间:2017-05-28 19:59:28

标签: firebase firebase-realtime-database hierarchical-data database nosql

我正在尝试构建一个允许用户只访问自己帖子的结构。

我有两种可能的方式,我不确定它们中的任何一种都是最佳做法。我的最终目标是允许用户只读取和写入他们自己的所有帖子。

方法A - 帖子/用户(不确定这可以从安全的角度来看)

{
  "posts" : {
    "001" : {
      "text" : "note 1",
      "userID" : "user1"
    },
    "002" : {
      "text" : "note 2",
      "userID" : "user1"
    },
    "003" : {
      "text" : "note 3",
      "userID" : "user2"
    }
  }
}

方法B - 用户/帖子(不像方法A那样平坦)

{
  "users" : {
    "user1" : {
      "posts" : {
        "001" : {
        "text" : "note 1",
        },
        "002" : {
          "text" : "note 2",
        },
      }
    },
    "user2" : {
      "posts" : {
        "003" : {
        "text" : "note 3",
        },
    },
  }
}

我试图遵循指南以保持数据平稳。实际上,帖子项目不仅仅包含文本,还不能超过2个级别。感谢您提供任何建议!

1 个答案:

答案 0 :(得分:0)

我会

{
"Users": {
    "user1uniqueRef": {
        "postIDUniqueRef1": {
            "text" : "Here is someText"
            "imageURL" : "https:// etc etc etc"
        "postIDUniqueRef2": {
            "text" : "Here is someText"
            "imageURL" : "https:// etc etc etc"
    "user2uniqueRef": {
       "postIDUniqueRef1": {
           "text" : "Here is someText"
           "imageURL" : "https:// etc etc etc"
        }
    }
}