我正在开发一个用户在类别中发布产品的应用程序。我正在使用firebase,我正在尝试压缩数据库上的数据,但我不确定帖子与类别的连接。
以下是数据库设计:
"categories": {
"category1": {
"id": "1",
"name": "computers"
},
"category2": {
"id": "2",
"name": "Furniture"
},
"category3: {
"id": "3",
"names": "Books"
},
}
"users":{
"email": "test@gmail.com"
"posts": {
"post1": {
"id": "1"
"title": "Selling my guitar”,
"categories": {
"category1": "true"
}
}
}
编辑:也许像这样
"categories": {
"category1": {
"id": "1",
"name": "computers",
"posts": {
"post1": true
}
},
"category2": {
"id": "2",
"name": "Furniture"
},
"category3": {
"id": "3",
"names": "Books"
},
}
"users": {
"userid1": {
"email": "test@gmail.com" ,
"posts": {
"post1": "true"
}
}
},
"posts": {
"post1": {
"id": "1",
"title": "Selling my guitar",
"users": {
"user1" : "true"
},
"categories": {
"category1": "true"
}
}
}
因此,据我所知,我知道帖子应该是一个单独的实体,但后来我不知道如何连接它们。
请告诉我如何改进此数据库。
答案 0 :(得分:2)
展平数据意味着您不要混合实体类型。如果查看当前的/users
节点,现在可以获得有关该用户的信息(他们的电子邮件地址)和节点列表。这是两种不同的实体类型,通常应位于单独的顶级列表中。
"categories": {
"category1": {
"id": "1",
"name": "computers"
},
"category2": {
"id": "2",
"name": "Furniture"
},
"category3: {
"id": "3",
"names": "Books"
},
}
"users":{
"userid1": {
"email": "test@gmail.com"
}
},
"posts": {
"post1": {
"id": "1"
"title": "Selling my guitar”,
"categories": {
"category1": "true"
}
}
}