首页 文章

Firebase,NoSQL,数据结构

提问于
浏览
2

我刚开始使用NoSQL结构,特别是使用Firebase,这与MySQL或理性数据库有很大的不同 .

我正在开发一款能够列出体育游戏的应用程序;用户可以检索所有游戏的列表并选择他们想要参与的游戏 .

游戏列表跨越,或者至少将跨越多年,在2012年,2013年,2014年,2015年,2016年(现在),2017年(未来)等游戏中...

我的MySQL表中的表结构具有以下主键组合(gameid,yearid,sportType);原因是每个新的一年而不是仅增加游戏玩法,它将重新启动1,需要年轻人使其独特和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...

有人可以帮我指导一下吗?!

1 回答

  • 1

    我认为你是正确的方式 . 但是如果你有一个像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
              }
    
    }
    

    所以我想你想要概述以下内容:
    {"team":{"teamid":{"name":"blah ","teamcity":"L.A."等...并且在游戏JSON中引用了teamid,以便提取团队详细信息,但将其作为实际游戏定义的一部分包含在内,因为它将重复并且在实例中,团队更改名称或城市,必须在游戏的所有条目中进行更改?我这样做是对的!?

相关问题