gpt4 book ai didi

java - Firestore : Clients and invoices, 如何建模

转载 作者:行者123 更新时间:2023-11-29 06:50:16 26 4
gpt4 key购买 nike

我有以下架构,但我不确定如何在 Firestore 中对其建模。

我会有客户和发票。客户“有”发票。我需要能够执行这两个查询:

  • 显示客户拥有的发票
  • 更新系统中的所有发票(将 boolean 属性从 true 更改为 false)。

建模的正确方法是什么?第一个查询通过收集客户及其发票的子集来满足。但是第二个满足于收集所有发票?

感谢任何有经验的帮助

谢谢

最佳答案

我还有另一个建议,涉及创建两个像这样的顶级集合:

Firestore-root
|
--- users (collection)
| |
| --- userId (documents)
| |
| --- //user details
|
--- invoices (collection)
|
--- invoiceId (documents)
|
--- yourBooleanProperty: true
|
--- userId: true

如您所见,实现此目的的最简单方法是拥有一个名为 invoices 的集合,它可以将数据库中的所有发票作为文档保存。因为一张发票只能属于一个用户,所以您可以将 userId 作为属性。要获取与特定用户对应的所有发票,我建议您使用以下查询:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query query = rootRef.collection("invoices").whereEqualTo(userId, true);

如果您想立即将所有发票的 boolean 属性从 true 更改为 false,只需使用以下查询:

Query query = rootRef.collection("invoices").whereEqualTo(yourBooleanProperty, true);

关于java - Firestore : Clients and invoices, 如何建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50867267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com