斯威夫特& Firebase - 拆分用户信息数据?

时间:2018-05-25 20:19:02

标签: swift firebase nosql google-cloud-firestore

我目前正在编写一个健身应用程序,允许为用户记录所有个人记录。

我对Firebase的Cloud Firestore真的很新,所以我真的不知道如何构建数据库。

在我看来,我有两个选择:

选项1

Users
 |
 +--UserID
 |   |
 |   +--Name
 |   +--Phone
 |   +--etc..
 |
 |
Users-records
 |
 +--UserID
 |   |
 |   +--RecordName
 |   |   |
 |   |   +--recordValue
 |   |   +--recordType
 |   | 
 |   +--RecordName
 |   |   +--recordValue
 |   |   +--recordType

选项2

Users
 |
 +--UserID
 |   |
 |   +--Name
 |   +--Phone
 |   +--etc..
 |   +--Records
 |   |   |
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType

问题是:我是否必须为用户拆分集合? 您是否认为此架构是为此目的而设计的(即记录用户的个人记录)?

非常感谢

1 个答案:

答案 0 :(得分:0)

您的数据库结构实际上取决于您将如何使用它。请记住,每当您观察节点时,您也会观察所有子节点。

所以我可能更接近选项二,也许是这样:

export NODE_PATH=/usr/local/share/npm/lib/node_modules
node -e 'require("browserify")("input.js").bundle().pipe(fs.createWriteStream("output.js"))'

我选择这个,因为我想要一次性获得所有UserInfo的形象,所以我们可以观察到“UserInfo”节点并获取所有孩子:姓名,电话等。 ..

然后我认为你也想立刻获得所有记录,所以我们可以观察“记录”节点并获取所有这些数据。

此外,如果您愿意,可以通过观察UserID来立即获取所有内容!

但是,如果您可能要获得所有用户的列表,那么您肯定不希望所有这些数据都存在于一个位置,而且这种设计不起作用,因为这是需要观察的大量数据只是为了得到所有用户。

总结:选择一个选项,让您最轻松地获得所需内容,而无需获得您不想要的额外数据!