2017-01-09 718 views
8

我對Firebase相當陌生,我對數據庫有一定的瞭解,因爲我之前和MySQL一起工作過,但是閱讀了Firebase的好處以及它提供的功能 - 實時數據庫,登錄(auth),分析等。Firebase vs MySQL數據庫(分層/關係)

我正在尋找將Firebase實施到我正在開發的項目中。雖然MySQL是一個關係數據庫,但通過我的搜索,我發現(我相信)Firebase是一個分層數據庫,因爲它像JSON樹一樣是結構化數據庫。

遵循正確的開發方式,我想繪製ERDS和數據庫表以瞭解我的項目將如何與後端進行通信。但是,我不太清楚如何使用這些介質來表示數據結構,因爲在SQL中,您將有主鍵和外鍵鏈接表。 Firebase也是如此嗎?

例如,在MySQL表將如下所示:[d]
的ERD想這樣的:

我的問題是:

  • 我是正確的話火力地堡是一個分層的數據結構?
  • 如何在ERD和數據庫表中表示數據以顯示Firebase的數據結構?
  • Firebase是否使用像MySQL中的主鍵和外鍵
    如果是這樣,這些表示是否與爲MySQL數據庫設計ERD和表時的方式相同?
  • 在Firebase中構建數據並在ERD和表中顯示這些數據的最佳方式是什麼?

我是Firebase的新手,所以任何幫助都不錯。謝謝。

+0

謝謝,完成。 。 – SumOne

回答

5

這是一個令人難以置信的廣泛話題,正如您可以在單個帖子中看到四個問題一樣。我建議觀看我們的Firebase for SQL developers系列和閱讀NoSQL data modeling

幾個簡單的答案:

  • 火力地堡確實是一個分層數據結構:它實際上只是在雲中的JSON樹。
  • 沒有定義的方式來顯示ERD中的分層數據。顯示JSON樹更常見。
  • Firebase具有密鑰的概念,這些密鑰是您存儲數據所在的節點的名稱。您可以將它們與關係數據庫的主鍵進行比較。但是沒有管理外鍵的概念。
  • 作爲第二個問題:將Firebase數據庫建模爲JSON是一種常見做法,這非常方便,因爲這也是數據庫存儲的格式。
+0

嗨,感謝您的鏈接和視頻真的很有幫助。有沒有辦法自動增加唯一標識符?例如,在MySQL中,您可以將數字作爲唯一標識符,每次添加新記錄時,都會增加行號。 – SumOne

+0

您會爲此使用Firebase推送ID。它們會自動遞增,但這種方式可以保持規模和用戶可以脫機的場景。請參閱我鏈接的視頻系列和https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html –

+0

謝謝,請稍等並讓我們知道我是否面臨任何問題。 – SumOne