【问题标题】:Design database Firebase for quote app为报价应用程序设计数据库 Firebase
【发布时间】:2018-01-12 09:27:53
【问题描述】:

我有一个与 SQL 数据库一起使用的报价应用程序,我想迁移到 Firebase 数据库。由于 SQL 数据库是关系数据库,我对应用程序的正确结构感到困惑。

在 SQL 数据库中,我使用了三个表:

-类别

-作者

-引号

作者 类别 行情

每个引文都有一个作者和一个类别,因此用户可以查看作者列表并查看特定作者的所有引文。他还可以查看类别列表,并可以查看与特定类别相关的所有报价。

所以 Quotes 表有两个外键,分别是 Authors 表主键和 Categories 表主键的引用。

谁能帮我找出我的应用程序的最佳结构?

tnx

【问题讨论】:

  • 但是我如何实现这个关系数据库,因为我不知道如何将它与 firebase 联系起来
  • @akshay_shahane 你指的是什么产品?如果您指的是 Cloud Firestore,那不是关系数据库。

标签: android json firebase firebase-realtime-database


【解决方案1】:

有一种非常简单的方法可以实现这一点。以下是您的规范所需的数据结构

您可以轻松地根据类别和通过 firebaseDB 查询来引用报价。你可以这样做

Database.Database().child(quotes).childOrderBy("Category-tag").observe()

同样,您可以通过uid 获取作者列表。

希望对您有所帮助

干杯!

【讨论】:

    【解决方案2】:

    这是为您的报价应用程序构建 Firebase 数据库的解决方案:

    Firebase-root
        |
        --- users
        |     |
        |     --- uid1
        |          |
        |          --- authors
        |          |      |
        |          |      --- authorId1: true
        |          |      |
        |          |      --- authorId2: true
        |          |
        |          --- categories
        |                 |
        |                 --- categoryId1: true
        |                 |
        |                 --- categoryId2: true
        |
        --- categories
        |     |
        |     --- categoryId1
        |             |
        |             --- quoteId1: true
        |             |
        |             --- quoteId2: true
        |
        --- authors
        |     |
        |     --- authorId1
        |            |
        |            --- quotes
        |                   |
        |                   --- quoteId1: true
        |                   |
        |                   --- quoteId2: true
        |                  
        |
        --- quotes
              |
              --- quoteId1
                     |
                     --- categoryId1: true
                     |
                     --- authorId1: true
    

    我没有在这个数据库结构中包含作者姓名、类别名称等详细信息,因此您可以专注于 Firebase 节点之间的关系。使用这种数据库结构,可以做如下操作来查看:

    • 所有报价
    • 属于同一作者的所有引文
    • 属于一个类别的所有引用
    • 属于特定作者和特定类别的所有引用

    • 所有类别

    • 所有作者

    最后,我推荐你看这个系列教程:The Firebase Database For SQL Developers 以便更好地理解。

    【讨论】:

      猜你喜欢
      • 2017-07-16
      • 2021-05-10
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 2014-06-05
      • 2011-12-07
      • 1970-01-01
      • 2014-09-26
      相关资源
      最近更新 更多