2017-01-09 231 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