设计数据库Firebase for quote app

时间:2018-01-12 09:27:54

标签: android json firebase firebase-realtime-database

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

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

-category

-author

-quotes

作者 分类 引号

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

所以Quotes表有两个外键引用了Authors表的主键和Categories表的主键。

任何人都可以帮我找到应用程序的最佳结构吗?

TNX

2 个答案:

答案 0 :(得分:1)

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

enter image description here

您可以根据类别和查询firebaseDB轻松引用引号。你可以通过

来做到这一点

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

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

希望您找到这个有用的

干杯!

答案 1 :(得分:1)

这是为报价应用程序构建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以便更好地理解。