如何创建数据结构?

苏斯通

我正在准备一个Firebase应用程序。该应用程序将是关系数据。您想分别保存的作者信息,书籍信息和销售信息。记录结构如下。

作家

  • author_id
  • author_name

图书

  • book_id
  • book_name
  • author_id

销售量

  • sales_id
  • 销售日期
  • 价格
  • author_id
  • book_id

如何使用子值创建数据结构以获取所需的信息。

例如,为展览轻松售出的最后一本书。

  • book_name
  • author_name
  • 销售日期

预先感谢您的帮助,祝您有美好的一天。

杰伊

Firebase没有表或架构(如SQL中一样)并且没有关系,因此您需要以一种获取您要检索的数据的方式来结构化数据。

请注意,所有节点键(以Y开头)都是使用childByAutoId创建的。

authors
  -Y89j809ja
    author: "Heinlein"
  -Yi9jasas0
    author: "Clarke"
  -Yojoos0sd
    author: "Bradbury"
books
  -Ykkao90sj
    book_name: "Starship Troopers"
    author_id: "-Y89j809ja"
  -Yom9sjwppp
    book_name: "2001: A Space Odyssey"
    author_id: "-Ji9jasas0"
  -Yowk90dj9s
    book_name: "The Martian Chronicles"
    author_id: "-Yojoos0sd"
sales
  -Yijajisijd
    sales_timestamp: "20160916130510"
    book_id: "-Ykkao90sj"
  -Yioj900wwo
    sales_timestamp: "20160917084722"
    book_id: "-Yojoos0sd"

使用此结构,您可以查询销售节点的最后3次销售(sales_timestamp的queryLimitedToLast)。这将返回通过book_id检索图书并通过author_id检索作者所需的数据。

还有其他100种方法来构造数据,但这将是最“相关的”

它将需要一个查询才能从销售节点(.Value)获得销售,然后遍历这些结果以查询书籍和作者。您可以嵌套这些查询,以免它们违反Firebase的异步特性。

另一个选择是整理数据,并仅将每个事务与所有需要的数据一起存储。

sales
  -Yijajisijd
    sales_timestamp: "20160916130510"
    book_name: "Starship Troopers"
    author: "Heinlein"
    price: "$19.95"
  -Yikiasomn
    sales_timestamp: "20160917084722"
    book_name: "2001: A Space Odyssey"
    author: "Clarke"
    price: "$14.95"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章