我正在准备Firebase申请。该应用程序将是关系数据。您要单独保存的作者信息,书籍信息和销售信息。记录结构将遵循。
作者
书
销售
如何使用子值创建数据结构以获得所需信息。
例如,最后一本书很容易为该节目销售。
提前感谢您的帮助,祝您今天愉快。
答案 0 :(得分:1)
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查询已限制的内容)。这将返回通过它的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"