当前位置: 首页 > 面试题库 >

Firebase中的多对多关系

贝研
2023-03-14
问题内容

我有一个Firebase数据库。我有公司和承包商。一个承包商可以为多个公司工作,而一个公司可以有多个承包商。这是直接的多对多关系。我希望能够回答有关公司和承包商的问题:

给定一家公司,他们是当前的承包商。
给承包商一个他们要工作的公司。
在Firebase中构造数据的替代方法有哪些?


问题答案:

自我回答确实是对此进行建模的一种方法。它可能是在关系数据库中建模的最直接等效方法:

承办商
公司
companyAndContractorsAssignment(多对多连接器表)
一种替代方法是使用4个顶级节点:

承办商
公司
公司承包商
承包商公司
最后两个节点如下所示:

companyContractors
    companyKey1
        contractorKey1: true
        contractorKey3: true
    companyKey2
        contractorKey2: true
contractorCompanies
    contractorKey1
        companyKey1: true
    contractorKey2
        companyKey2: true
    contractorKey3
        companyKey1: true

这种双向结构使您既可以查找“公司承包商”又可以“公司承包商”,而无需查询。这势必会更快,尤其是在您添加承包商和公司时。

这对于您的应用程序是否必要,取决于您需要的用例,您期望的数据大小等等。



 类似资料:
  • 我有一个Firebase数据库。我有公司和承包商。一个承包商可以为多个公司工作,一个公司可以有多个承包商。这是一种简单的多对多关系。我希望能够回答有关公司和承包商的问题: 给定一家公司,谁是当前的承包商 给定一个承包商,他们为哪些公司工作 在firebase中构建数据的替代方案是什么?

  • 问题内容: 我知道在Elasticsearch中,我们可以在文档之间建立子/父关系。 然后,在建立索引时,我可以传递父代ID,以便将子文档和父文档链接起来: 无论如何,在Elasticsearch中建立多对多关系的模型吗? 数据驻留在具有以下架构的MySQL数据库中: 当前这是我的映射(请原谅数组表示法,我在PHP中使用Elastica与我的Elasticsearch服务器通信): 这种方法的问题

  • 我还想知道如何定义每个模型上的关系--你是否需要或者是否可以只在用户上定义关系?

  • 如何以多对多关系从Firebase Cloud Firestore构建和查询数据? 我有公司和承包商。一个承包商可以为多个公司工作,一个公司可以有多个承包商。这是一种简单的多对多关系。我希望能够回答有关公司和承包商的问题: 给定一家公司,谁是目前的承包商。给承包商他们在为什么公司工作。什么是正确的方式来构建Cloud Firesta中的数据?

  • 问题内容: 伙计们,我正在努力为我的公司制作一个简单的票证生成系统,以吸引人。目前,我的MSSQL数据库中有一个名为的表,另一个名为的表。 我的应用程序是C#Windows窗体,因此在新的票证生成窗体上,我有许多文本框和一个用于分配工程师的comboBox,由填充。生成票证后,以这种形式输入的所有信息都将与from一起存储。 效果很好,但是后来我的客户要求我添加选项,以便可以在一张票上分配3名工程