【问题标题】:Firebase vs MySQL database (hierarchical/relational)Firebase 与 MySQL 数据库(分层/关系)
【发布时间】:2017-05-23 15:14:31
【问题描述】:

我是 Firebase 的新手,我对数据库有一些了解,因为我之前使用过 MySQL,但阅读了 Firebase 的好处以及它提供的功能 - 实时数据库、登录 (auth)、分析等.

我希望将 Firebase 应用到我正在进行的项目中。虽然 MySQL 是一个关系数据库,但通过我的搜索,我发现(我相信)Firebase 是一个分层数据库,因为它像 JSON 树一样构建数据库。

按照正确的开发方式,我想绘制ERDS和数据库表来了解我的项目将如何与后端通信。但是,我不太确定如何使用这些媒介来表示数据结构,因为在 SQL 中,您将拥有链接表的主键和外键。 Firebase 也是这种情况吗?

例如,在 MySQL 中,表看起来像:
ERD 想:

我的问题是:

  • 我说 Firebase 是一种分层数据结构是否正确?
  • 如何在 ERD 和 Database 表中表示数据以显示 firebase 的数据结构?
  • Firebase 是否像 MySQL 中那样使用主键和外键
    如果是这样,这些表示方式是否与为 MySQL 数据库设计 ERD 和表时相同?
  • 在 Firebase 中构建数据并在 ERD 和表格中显示这些数据的最佳方式/最佳方式是什么?

我是 Firebase 的新手,所以任何帮助都会很好。谢谢。

【问题讨论】:

    标签: mysql database firebase firebase-realtime-database nosql


    【解决方案1】:

    这是一个非常广泛的话题,从您在一篇文章中有四个问题的事实可以看出。我建议观看我们的Firebase for SQL developers 系列并阅读NoSQL data modeling

    几个快速回答:

    • Firebase 确实是一种分层数据结构:它实际上只是云中的 JSON 树。
    • 没有明确的方式来显示 ERD 中的分层数据。显示 JSON 树更为常见。
    • Firebase 具有键的概念,键是您在其下存储数据的节点的名称。您可以将它们与关系数据库的主键进行比较。但是没有托管外键的概念。
    • 作为您的第二个问题:将 Firebase 数据库建模为 JSON 是一种常见做法,这非常方便,因为这也是数据库存储的格式。

    【讨论】:

    • 您好,感谢您提供的链接和视频真的很有帮助。有没有办法自动增加唯一标识符?例如,在 mysql 中,您可以将数字作为唯一标识符,并且每次添加新记录时都会增加行号。
    • 您会为此使用 Firebase 推送 ID。它们会自动递增,但随后会以一种在用户可以离线的情况下保持大规模工作的方式。请参阅我链接的视频系列和firebase.googleblog.com/2015/02/…
    • 谢谢,如果我遇到任何问题,我会看看并告诉你。
    猜你喜欢
    • 2014-02-19
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多