Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud firestore Firestore中不同集合中相互依赖的文档的正确模式是什么?_Google Cloud Firestore - Fatal编程技术网

Google cloud firestore Firestore中不同集合中相互依赖的文档的正确模式是什么?

Google cloud firestore Firestore中不同集合中相互依赖的文档的正确模式是什么?,google-cloud-firestore,Google Cloud Firestore,假设我想编写一个显示组织中团队成员目录的应用程序。它有两个组件:成员,和项目。一个成员可能是多个项目的一部分。 应用程序必须允许您浏览项目列表,并查看哪些成员是该项目的一部分。它还必须允许您点击某个成员并查看该成员所参与的所有项目的列表 在Firestore中构建此结构的正确方法是什么?我假设不会像这样复制数据: 成员 名字 计划 id_项目 计划 名字 成员 身份证持有人 我习惯用关系数据库和外键来思考。由于Firestore中似乎没有类似的内容,因此有哪些准则可以确保关系

假设我想编写一个显示组织中团队成员目录的应用程序。它有两个组件:成员,和项目。一个成员可能是多个项目的一部分。 应用程序必须允许您浏览项目列表,并查看哪些成员是该项目的一部分。它还必须允许您点击某个成员并查看该成员所参与的所有项目的列表

在Firestore中构建此结构的正确方法是什么?我假设不会像这样复制数据:

  • 成员

    • 名字
    • 计划
      • id_项目
  • 计划

    • 名字
    • 成员
      • 身份证持有人

我习惯用关系数据库和外键来思考。由于Firestore中似乎没有类似的内容,因此有哪些准则可以确保关系数据的完整性?

Firestore与所有NoSQL数据库一样,不强制执行关系完整性。确保完整性的唯一因素是代码,而建立关系的唯一因素也是代码。这意味着通常没有一种“正确”的数据建模方法。您的数据模型应该适合您需要执行的查询,并且为了有效地支持这些查询,在数据库中复制数据是很常见的。但是,如果NoSQL如此不适合原子数据,为什么亚马逊和谷歌要这么努力呢?似乎一切都是为了配合DynamoDB和Firebase而设计的,而SQL则被视为传统。您可以使用各种数据库选项,每个选项都有各自的优缺点,您可以自由选择最适合您需要的数据库。我要说的是,如果您需要巨大的可伸缩性,那么几乎可以肯定,SQL数据库不会是最好的解决方案。没有人反对SQL—有完全受支持且可行的SQL数据库可以处理中等负载。