我正在尝试为我正在构建的角度应用程序实现一个结构,每个用户都有自己的数据集用于登录,因此每个用户都应该拥有自己的“费用”,“联系人”,“发票”集合。
据我了解,因此应该存在具有用户uid值的id的文档,这些文档通过查询用户数据的主集合的查询来访问。因此,在firestore控制台的顶级“Contacts”集合中,应该有每个用户的uid标记的文档,然后包含他们自己可用的联系人数组。
以下演示:
这看起来像是为每个用户实施数据的正确方法吗?
答案 0 :(得分:3)
没有单一的"正确的"数据建模方法。这完全取决于我们的应用程序的用例。
一种选择是让顶级users
集合包含每个用户的文档,然后每个用户拥有contacts
,expenses
和invoices
个集合。
但这只是一种方式而且如上所述,这一切都取决于你的用例。例如,使用上述模型,您无法在所有用户的发票中进行查询。如果您希望在两个用户之间共享发票,则需要将其添加到每个用户的/users/$uid/invoices
集合中。如果这不符合您应用的用例,那么您可以考虑将发票存储在顶级/invoices
集合中,并为每个用户添加对它们的引用。
对于一刀切的解决方案,有太多的变化,这就是为什么你没有附带标准应用就找不到标准数据模型的原因。这两者总是齐头并进。
要了解详情,建议您阅读有关NoSQL data modeling的文章。