Firebase中的数据结构

时间:2016-11-24 13:04:04

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

我想开始使用Firebase。

我将从一个简单的漫画数据库开始。

哪种结构最好?

备注结构1:我如何获得系列列表?

备注结构2:太靠近sql数据库了吗?

结构1:

{
  "comics" : {
    "1" : {
      "serie" : "Batman",
      "nr" : "1",
      "title" : "Title of issue 1"
    },
    "2" : {
      "serie" : "Batman",
      "nr" : "2",
      "title" : "Title of issue 2"
    },
    "3" : {
      "serie" : "Spiderman",
      "nr" : "1",
      "title" : "Title of issue 1"
    }
  }
}

结构2:

{
  "issues" : {
    "1" : {
      "serie" : "1",
      "nr" : "1",
      "title" : "Title of issue 1"
    },
    "2" : {
      "serie" : "1",
      "nr" : "2",
      "title" : "Title of issue 2"
    },
    "3" : {
      "serie" : "2",
      "nr" : "1",
      "title" : "Title of issue 1"
    }
  },
  "series" : {
    "1" : {
      "title" : "Batman"
    },
    "2" : {
      "serie" : "Spiderman"
    }
  }
}

1 个答案:

答案 0 :(得分:2)

  • 我首先会在文档中查看this page

  • 然后根据Jay的建议,允许firebase为您的记录生成唯一的密钥。

  • 记录每个series,作为一个孩子,您可以保留一份清单 其相关剧集。

  • 记录每个episode,在这里您可以保留更多详细信息 关于它(年,演员,评级等)。如果需要,您甚至可以跟踪它所属系列的ID。

您的数据结构可能如下所示:

{
  "series": {
    "58371074b694fc9c35ec8891": {
      "name": "Batman",
      "episodes": {
        "583710741ffbf07cfccf7ba2": true,
        "58371074539dde71b245d5a1": true,
        "583710744b14fd3a654a6d75": true
      }
    },
    "58371074898bed03d73cd12c": {
      "name": "Spiderman",
      "episodes": {
        "58371074b63304e2617b558e": true
      }
    }
  },
  "episode": {
    "583710741ffbf07cfccf7ba2": {
      "name": "Batman Begins"
    },
    "58371074539dde71b245d5a1": {
      "name": "Batman Returns"
    },
    "583710744b14fd3a654a6d75": {
      "name": "Batman Forever"
    },
    "58371074b63304e2617b558e": {
      "name": "The Amazing Spider-Man"
    }
  }
}

注意:显然上面示例中的键并未由firebase生成,但您可以了解数据结构的外观。