在本机应用程序中,用户组的推荐体系结构是什么?我使用https://github.com/mcnamee/react-native-starter-kit创建了一个简单的应用,该应用使用了Firebase,并希望对其进行修改以适合我的需求,但不确定如何实现。
如果要选择的话,我希望允许用户成为许多组的一部分(类似于组消息传递,用户可以选择自己的朋友成为组的一部分)。因此,如果有三个用户user1,user2和user3,则可能是包含user1 / user2的group1和包含user2 / user3的group2。
在关系数据库设置中,我只能使用外键来表达这些关系,但是在NoSQL数据库(如firebase)中,结构似乎有很大不同。
有推荐的方法吗?是否有示例应用程序在某处实现了类似功能?
我对移动应用程序开发完全陌生,并且不想一开始就走错路,所以任何提示都将受到赞赏。
答案 0 :(得分:1)
我做了这样的事情。
firebase中将有一个users
表,其中将包含所有用户数据。每个注册的用户都将添加到此处。
每个组将被添加到groups
对象中,其成员数组将指向用户表中的用户ID
groups:{
0: {name:'Group1',members:[3,1,8], image:''},
1: {name:'Group1',members:[3,1,8], image:''},
}
users: {
1: {name:'user1', avatar:''},
2: {name:'user2', avatar:''},
}
您是正确的,在设计Firebase / fire-store时选择正确的数据库结构。我提供的示例只是您需要在您的项目中应用的伪代码。
我可以为使用Firebase的Github链接提供帮助。只需运行一次,就可以看到他们用来更好地实现事情的数据结构。
https://github.com/FirebaseExtended/firechat
答案 1 :(得分:0)
您可以通过normalizing前端数据并使用normalized-reducer来管理关系数据库的设计。它是一个高阶归约器,它采用描述关系的模式,并返回根据关系写/读的归约器,操作和选择器。 Normalized-reducer可与React的useReducer
和Redux一起使用,并且可以轻松地与Normalizr和Redux Toolkit集成。