Firebase、NoSQL、数据结构

Firebase、NoSQL、数据结构,firebase,data-structures,firebase-realtime-database,nosql,Firebase,Data Structures,Firebase Realtime Database,Nosql,我刚开始使用NoSQL结构,特别是使用Firebase,它与MySQL或rational DBs有很大的不同 我正在开发一个应用程序,将列出体育游戏;用户可以检索所有游戏的列表,并选择他们想要参加的游戏 2012年、2013年、2014年、2015年、2016年(现在)、2017年(未来)等奥运会前,奥运会名单跨越或至少将跨越多年 mymysql表中的表结构有以下主键组合(gameid、yearid、sportType);原因是每年新年,而不是仅仅增加gameid,它将在1重新启动,这需要yea

我刚开始使用NoSQL结构,特别是使用Firebase,它与MySQL或rational DBs有很大的不同

我正在开发一个应用程序,将列出体育游戏;用户可以检索所有游戏的列表,并选择他们想要参加的游戏

2012年、2013年、2014年、2015年、2016年(现在)、2017年(未来)等奥运会前,奥运会名单跨越或至少将跨越多年

mymysql表中的表结构有以下主键组合(gameid、yearid、sportType);原因是每年新年,而不是仅仅增加gameid,它将在1重新启动,这需要yearid使其具有唯一性和sportType,因为它可以输入棒球、足球、曲棍球等

我创建了JSON结构,我想我在问自己,是否需要帮助来检查它是否是非规范化的,或者我是否可以以某种方式改进它

我认为我遵循的是理性的方法论,但我想到的是:

{
  "games" : {
  "year" : {
  "sportType" : {
       "desc" : "Week 1 ",
       "teamid" : 123
       "gameid" : 11111,
       etc...
       }
    } 
},
"year" : {
  "sportType" : {
       "desc" : "Week 1 ",
       "teamid" : 223
       "gameid" : 22222,
       etc...
       }
    } 
它有点像我为MySQL做的主要索引,但问题是我需要这样做吗!?我想我不知道,但我想听听其他的意见,因为我对这方面还不熟悉

我认为我应该遵循以下原则:

{
  "games" : {
    "gameid" : {
        "desc" : "Week 1 ",
        "teamid" : 123
        "sportType" : "football",
        "year" : 2016
           etc...

有人能帮我引路吗

我认为你走的路是对的。但是,如果您有一个像teamDetail这样的对象,您应该将细节移动到另一个节点,并将其指向teamDetail内部

{
  "games" : {
    "gameid" : {
        "desc" : "Week 1 ",
        "teamid" : 123
        "sportType" : "football",
        "year" : 2016
         "teamDetail": {
          "name": team1,
          "country": c1,.. etc
          }
           etc...
teamDetail对象的上述非规范化版本

{
  "games" : {
    "gameid" : {
        "desc" : "Week 1 ",
        "teamid" : 123
        "sportType" : "football",
        "year" : 2016
         "teamDetail": {
          "team1id": true,
          "team2id": true, ...etc...
          }
           etc...

teamDetails:{

 "team1id": {
          "name": team1,
          "country": c1,.. etc
          }
 "team2id": {
          "name": team2,
          "country": c2,.. etc
          }

}
所以我想让你概括一下:
{ “团队”:{ “团队ID”:{ “名字”:“废话”, “团队城市”:“洛杉矶” 等等……在游戏JSON中引用teamid以获取团队详细信息,但在实际游戏定义中包含它,因为它会重复,在这种情况下,团队更改名称或城市,必须在所有方面进行更改游戏的参赛作品?我这样做对吗