我目前正在开展一个项目,在我的 Java Android 应用程序中需要两种不同类型的不相关数据结构。一个是用户,另一个是食物的种类。
用户是这样设置的:
用户
- 用户名
- 姓名
- 年龄
- 性别
- 体重
- 高度
但是,我还需要一个看起来像这样的,它必须是可搜索的:
食物
- 姓名
- 碳水化合物
- 胖
- 蛋白质
是否可以使用相同的数据库(最好是 Firebase,因为我已经在使用它),或者我是否需要向我正在制作的应用程序添加另一个数据库?
编辑:我最终导出了 JSON,根据此处给出的良好答案重写,然后再次导入。它完美无瑕。感谢您的回答!
{
"foods" : {
"name" : {
"carbohydrates" : "5",
"fats" : "5",
"proteins" : "5"
}
},
"users" : {
"FjtMNTcDrOP2wcaPAa0E0Cc1jRz2" : {
"activity" : "Moderate Exercise (3–5 days/week)",
"age" : "40",
"gender" : "Male",
"height" : "180",
"name" : "Flex",
"weight" : "86"
}
}
}
最佳答案
是的,可以在 Firebase 实时数据库中为多个实体类型(例如您的 users
和 foods
)建模。虽然它没有表的概念,但它是 JSON 值的层次结构,您可以在其中建模任何您想要的结构。
例如,您可以使用此 JSON 表达您的数据模型:
{
"users": {
"userid": {
"name": "value",
"age": 42,
"gender: "value",
"weight": 190,
"height": 172
}
},
"foods": {
"name": {
"carbohydrate": 42
"fat": 11,
"protein": 8
}
}
}
在关系术语中,上述模型定义了两个“表”:users
和foods
。在 Android 代码中,您可以使用以下方法定义对其中每一个的单独引用:
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersReference = rootReference.getChild("users");
DatabaseReference foodsReference = rootReference.getChild("foods");
关于java - 在一个 Firebase 数据库中使用两种不同的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195649/