我刚开始使用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 回答
我认为你是正确的方式 . 但是如果你有一个像teamDetail这样的对象,你应该将详细信息移动到另一个节点并将其指向teamDetail .
针对teamDetail对象的上述非规范化版本 .
所以我想你想要概述以下内容:
{"team":{"teamid":{"name":"blah ","teamcity":"L.A."等...并且在游戏JSON中引用了teamid,以便提取团队详细信息,但将其作为实际游戏定义的一部分包含在内,因为它将重复并且在实例中,团队更改名称或城市,必须在游戏的所有条目中进行更改?我这样做是对的!?