我最近开始开发一个用于管理卡车/拖车/司机的网络应用程序,但我准备放弃使用 React 和 Firebase,因为我不知道如何构建我的数据库。
简而言之,连接到应用程序的每个用户都有自己的车队(只有一个!)。每个这样的车队都包含许多卡车、拖车和司机。
这就是我设想的潜在数据库结构:
我的数据库应该包含一个“用户”集合,其中所有用户帐户都将存储为文档
上述集合中的每个文档应包含一些定义用户的字段(姓名、电子邮件等)和“舰队”子集合;
每个“车队”子集合应包含 3 个子集合:“司机”、“卡车”、“拖车”
(为了澄清起见,这就是它的样子:users_collection -> user_doc ->舰队_collection ->(drivers_collection | Trucks_collection | Trailers_collection)
这一切听起来很神奇(在我看来),但有一个大问题:Firestore 不允许直接在集合下嵌套集合;这意味着我必须在“车队”集合下创建一个空文档,然后我才能为其创建其他 3 个子集合(“司机”、“卡车”、“拖车”)...这似乎非常愚蠢,如果可以避免这种情况我会很高兴。
(为了澄清起见,这就是它的样子:users_collection -> user_doc ->舰队_collection ->舰队_doc ->(drivers_collection | Trucks_collection | Trailers_collection)
在这个场景中我缺少什么吗?
我想到的一个潜在解决方案是让“舰队”成为它自己的顶级集合(与“用户”相同);如果这样做,那么我只需为每个用户创建一个新文档(与“用户”集合相同),并在每个此类文档中创建 3 个子集合(“司机”、“卡车”、“拖车”) ')。虽然这可行,但我觉得这不是特别有吸引力,因为我喜欢我的数据库代表现实世界层次结构的想法。
(为了澄清起见,这就是它的样子:users_collection -> user_doc; 舰队_集合 -> 用户文档 -> (drivers_collection | Trucks_collection | Trailers_collection) )
非常感谢您阅读本文以及您可能的答案!谢谢!
有没有办法让 Firestore 数据库中的一个集合直接位于另一个集合下?
不。 Firestore 数据模型从直接在根下的集合开始,然后是每个集合下的一个或多个文档,并且可以选择再次在每个文档下包含一个或多个集合(并进一步嵌套,直到达到记录的最大值)。无法更改此模型。