Firebase、NoSQL、数据结构
我刚开始使用NoSQL结构,特别是使用Firebase,它与MySQL或rational DBs有很大的不同 我正在开发一个应用程序,将列出体育游戏;用户可以检索所有游戏的列表,并选择他们想要参加的游戏 2012年、2013年、2014年、2015年、2016年(现在)、2017年(未来)等奥运会前,奥运会名单跨越或至少将跨越多年 mymysql表中的表结构有以下主键组合(gameid、yearid、sportType);原因是每年新年,而不是仅仅增加gameid,它将在1重新启动,这需要yearid使其具有唯一性和sportType,因为它可以输入棒球、足球、曲棍球等 我创建了JSON结构,我想我在问自己,是否需要帮助来检查它是否是非规范化的,或者我是否可以以某种方式改进它 我认为我遵循的是理性的方法论,但我想到的是: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
{
"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以获取团队详细信息,但在实际游戏定义中包含它,因为它会重复,在这种情况下,团队更改名称或城市,必须在所有方面进行更改游戏的参赛作品?我这样做对吗