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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Firebase數(shù)據(jù)結(jié)構(gòu)和網(wǎng)址

Firebase數(shù)據(jù)結(jié)構(gòu)和網(wǎng)址

Firebase數(shù)據(jù)結(jié)構(gòu)和網(wǎng)址我是Firebase和nosql的新手,所以請(qǐng)耐心地使用我對(duì)sql的引用。所以我的問題是如何在firebase中構(gòu)建數(shù)據(jù)?在firebase中,這是指mysql中的每個(gè)“新firebase”=“新數(shù)據(jù)庫(kù)”還是“表”?如果在我的實(shí)時(shí)網(wǎng)絡(luò)應(yīng)用程序中,我有用戶和評(píng)論。在mysql中,我將創(chuàng)建一個(gè)用戶和一個(gè)注釋表,然后將它們鏈接在一起。我如何在firebase中構(gòu)建它?
查看完整描述

2 回答

?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您有用戶和評(píng)論,您可以輕松地對(duì)其進(jìn)行建模:

ROOT
 |
 +-- vzhen
 |     |
 |     +-- Vzhen's comment 1
 |     |
 |     +-- Vzhen's comment 2
 |
 +-- Frank van Puffelen
       |
       +-- Frank's comment 1
       |
       +-- Frank's comment 2

然而,更有可能的是,第三個(gè)實(shí)體,如文章,以及用戶正在評(píng)論(彼此的)文章。

Firebase沒有外鍵的概念,但很容易模仿外鍵。如果您這樣做,您可以像這樣建模用戶/文章/評(píng)論結(jié)構(gòu):

ROOT
 |
 +-- ARTICLES
 |     |
 |     +-- Text of article 1 (AID=1)
 |     |
 |     +-- Text of article 2 (AID=2)
 |
 +-- USERS
 |     |
 |     +-- vzhen (UID=1056201)
 |     |
 |     +-- Frank van Puffelen (UID=209103)
 |
 +-- COMMENTS
 |     |
 |     +-- Vzhen's comment on Article 1 (CID=1)
 |     |
 |     +-- Frank's response (CID=2)
 |     |
 |     +-- Frank's comment on article 2 (AID=2,UID=209103)
 |
 +-- ARTICLE_USER_COMMENT
       |
       +-- (AID=1,UID=1056201,CID=1)
       |
       +-- (AID=1,UID=209103,CID=2)
       |
       +-- (AID=2,UID=209103,CID=3)

這是您在關(guān)系數(shù)據(jù)庫(kù)中對(duì)此進(jìn)行建模的方式的直接映射。此模型的主要問題是您需要執(zhí)行的查找次數(shù)才能獲得單個(gè)屏幕所需的信息。

  1. 閱讀文章本身(來(lái)自ARTICLES節(jié)點(diǎn))

  2. 閱讀有關(guān)注釋的信息(來(lái)自ARTICLE_USER_COMMENT節(jié)點(diǎn))

  3. 閱讀評(píng)論的內(nèi)容(來(lái)自COMMENTS節(jié)點(diǎn))

根據(jù)您的需要,您甚至可能還需要閱讀USERS節(jié)點(diǎn)。

請(qǐng)記住,F(xiàn)irebase沒有WHERE子句的概念,只允許您從ARTICLE_USER_COMMENT中選擇與特定文章或特定用戶匹配的元素。

實(shí)際上,這種映射結(jié)構(gòu)的方法是不可用的。Firebase是一種分層數(shù)據(jù)結(jié)構(gòu),因此我們應(yīng)該使用獨(dú)特的功能來(lái)提供更多傳統(tǒng)的關(guān)系模型。例如:我們不需要ARTICLE_USER_COMMENT節(jié)點(diǎn),我們可以直接在每篇文章,用戶和評(píng)論本身下保留這些信息。

這個(gè)小片段:

ROOT
 |
 +-- ARTICLES
 |     |
 |     +-- Text of article 1 (AID=1)
 |     .    |
 |     .    +-- (CID=1,UID=1056201)
 |     .    |
 |          +-- (CID=2,UID=209103)
 |
 +-- USERS
 |     |
 |     +-- vzhen (UID=1056201)
 |     .    |
 |     .    +-- (AID=1,CID=1)
 |     .    
 |
 +-- COMMENTS
       |
       +-- Vzhen's comment on Article 1 (CID=1)
       |
       +-- Frank's response (CID=2)
       |
       +-- Frank's comment on article 2 (CID=3)

你可以在這里看到,我們正在通過(guò)文章和用戶節(jié)點(diǎn)傳播來(lái)自ARTICLE_USER_COMMENT的信息。這有點(diǎn)使數(shù)據(jù)非規(guī)范化。結(jié)果是,當(dāng)用戶向文章添加評(píng)論時(shí),我們需要更新多個(gè)節(jié)點(diǎn)。在上面的示例中,我們必須將注釋本身添加,然后將節(jié)點(diǎn)添加到相關(guān)的用戶節(jié)點(diǎn)和文章節(jié)點(diǎn)。優(yōu)點(diǎn)是當(dāng)我們需要顯示數(shù)據(jù)時(shí),我們有更少的節(jié)點(diǎn)要讀取。

如果你將這種非規(guī)范化最極端化,你最終得到的數(shù)據(jù)結(jié)構(gòu)如下:

ROOT
 |
 +-- ARTICLES
 |     |
 |     +-- Text of article 1 (AID=1)
 |     |    |
 |     |    +-- Vzhen's comment on Article 1 (UID=1056201)
 |     |    |
 |     |    +-- Frank's response (UID=209103)
 |     |
 |     +-- Text of article 2 (AID=2)
 |          |
 |          +-- Frank's comment on Article 2 (UID=209103)
 |
 +-- USERS
       |
       +-- vzhen (UID=1056201)
       |    |
       |    +-- Vzhen's comment on Article 1 (AID=1)
       |
       +-- Frank van Puffelen (UID=209103)
            |
            +-- Frank's response (AID=1)
            |
            +-- Frank's comment on Article 2 (AID=2)

您可以看到我們?cè)谧詈笠粋€(gè)示例中刪除了COMMENTS和ARTICLE_USER_COMMENT節(jié)點(diǎn)。有關(guān)文章的所有信息現(xiàn)在都直接存儲(chǔ)在文章節(jié)點(diǎn)本身下,包括對(duì)該文章的評(píng)論(與發(fā)表評(píng)論的用戶的“鏈接”)。現(xiàn)在,有關(guān)用戶的所有信息都存儲(chǔ)在該用戶的節(jié)點(diǎn)下,包括用戶發(fā)表的評(píng)論(與評(píng)論所涉文章的“鏈接”)。

對(duì)于這個(gè)模型而言,唯一仍然棘手的事情是Firebase沒有API來(lái)遍歷這樣的“鏈接”,因此您必須自己查找用戶/文章。如果您使用UID / AID(在此示例中)作為標(biāo)識(shí)用戶/文章的節(jié)點(diǎn)的名稱,這將變得更加容易。

這導(dǎo)致了我們的最終模型:

ROOT
 |
 +-- ARTICLES
 |     |
 |     +-- AID_1
 |     |    |
 |     |    +-- Text of article 1
 |     |    |
 |     |    +-- COMMENTS
 |     |         |
 |     |         +-- Vzhen's comment on Article 1 (UID=1056201)
 |     |         |
 |     |         +-- Frank's response (UID=209103)
 |     |
 |     +-- AID_2
 |          |
 |          +-- Text of article 2
 |          |
 |          +-- COMMENTS
 |               |
 |               +-- Frank's comment on Article 2 (UID=209103)
 |
 +-- USERS
       |
       +-- UID_1056201
       |    |
       |    +-- vzhen
       |    |
       |    +-- COMMENTS
       |         |
       |         +-- Vzhen's comment on Article 1 (AID=1)
       |
       +-- UID_209103
            |
            +-- Frank van Puffelen
            |
            +-- COMMENTS
                 |
                 +-- Frank's response (AID=1)
                 |
                 +-- Frank's comment on Article 2 (AID=2)

我希望這有助于理解分層數(shù)據(jù)建模和所涉及的權(quán)衡。


查看完整回答
反對(duì) 回復(fù) 2019-08-06
  • 2 回答
  • 0 關(guān)注
  • 419 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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