我目前正在编写一个健身应用程序,允许为用户记录所有个人记录。
我对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
问题是:我是否必须为用户拆分集合? 您是否认为此架构是为此目的而设计的(即记录用户的个人记录)?
非常感谢
答案 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来立即获取所有内容!
但是,如果您可能要获得所有用户的列表,那么您肯定不希望所有这些数据都存在于一个位置,而且这种设计不起作用,因为这是需要观察的大量数据只是为了得到所有用户。
总结:选择一个选项,让您最轻松地获得所需内容,而无需获得您不想要的额外数据!