第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase中的多到多關(guān)系

Firebase中的多到多關(guān)系

人到中年有點(diǎn)甜 2019-06-28 14:51:00
Firebase中的多到多關(guān)系我有一個Firebase數(shù)據(jù)庫。我有公司和承包商。一個承包商可以為一個以上的公司工作,一個公司可以有多個承包商。這是一個直截了當(dāng)?shù)亩嗟蕉嗟年P(guān)系。我希望能夠回答有關(guān)公司和承包商的問題:給一個公司,誰是現(xiàn)在的承包商。給一個承包商他們?yōu)槭裁垂竟ぷ?。在火力范圍?nèi)構(gòu)造數(shù)據(jù)的替代方案是什么?
查看完整描述

2 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個贊

經(jīng)過進(jìn)一步的研究,我將嘗試回答我自己的問題。我已經(jīng)審查了許多其他帖子,解決這個問題的一個解決方案是在一個公司對象中存儲ContractorKeys列表,并在每個承包商對象中存儲一個CompanyKeys列表。下面的例子說明了這一點(diǎn)。

companies : {
  companyKey1 : {
    name : company1
    ...
    contractors : {
      contractorKey1 : true,   
      contractorKey3 : true
    }
  }
  companyKey2 : {
    name : company2
    ...
    contractors : {
      contractorKey2 : true,  
    } 
  }
}
contrators : {
  contractorKey1 : {
     name : bill
     ...
     companies : {
        companyKey1 : true
     }
   }
  contractorKey2 : {
     name : steve
     ...
     companies : {
        companyKey1 : true
     }

   }
  contractorKey3 : {
     name : jim
     ...
     companies : {
        companyKey2 : true
     }
   }
}

這個組織的“工作”意義上說,上述問題是可以回答的。但是這種解決方案的一個缺點(diǎn)是,當(dāng)承包商/公司的任務(wù)發(fā)生變化時,有兩個列表需要維護(hù)。如果有一種方法在一個列表中表示這些信息,那就更好了。

我想出了一個更好的解決辦法。解決方案是創(chuàng)建第三份清單,此外還有公司和承包商,稱為ComanyAndContractorAsmission。這份清單的內(nèi)容將代表單一承包商和業(yè)主之間的關(guān)系。它的內(nèi)容將是一對字段,ContractorKey和companyKey。然后,我們可以取消公司內(nèi)部的承包商名單和承包商內(nèi)部的公司名單。這種替代結(jié)構(gòu)如下所示。注意,在公司對象中沒有承包商列表,也沒有帶有承包商對象的公司列表。

companies : {
  companyKey1 : {
    name : company1
    ...
  }
  companyKey2 : {
    name : company2
    ...
  }
}
contrators : {
  contractorKey1 : {
     name : bill
     ...
  }
  contractorKey2 : {
     name : steve
     ...
  }
  contractorKey3 : {
     name : jim
     ...
  }
}
companyAndContractorsAssignment : {
  key1 : {
    contractorKey1 : true,
    companyKey1: true,
  }
  key2 : {
    contractorKey3 : true,
    companyKey1: true,
  }
  key3 : {
    contractorKey2 : true,
    companyKey2: true,
  }

這種替代結(jié)構(gòu)允許一個人使用orderBychild/equalto來回答問題-對公司進(jìn)行查詢-AndContractorsAs寫意-查找承包商的所有公司或公司的所有承包商?,F(xiàn)在只有一份清單需要維護(hù)。我認(rèn)為這是我的需求的最佳解決方案。


查看完整回答
反對 回復(fù) 2019-06-28
  • 2 回答
  • 0 關(guān)注
  • 435 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號