订单管理应用程序的Firebase数据库设计

时间:2019-07-13 20:50:36

标签: firebase

我熟悉SQL,但是不熟悉NoSQL和Firebase。我需要帮助设计以下用例的Order

说明: 1)用户可以创建订单 2)创建订单后,员工可以在处理工作时更新记录

要求: 1)作为用户,我想查看所有我的订单 2)作为一名员工,我想查看所有订单并对其进行处理

我尝试自己做,但是我觉得我的方法不是最佳的。我希望Order表很大,所以我想使设计正确。

根据https://firebase.google.com/docs/database/web/structure-data,“双向关系的冗余[[必要]]”。我不确定这是我最终需要做的事情,还是有更好的解决方案

这是我的Order桌子

/oders
  /{{ orderId }}
    ..
    userId: {{ userId }}
    status: "received"
  /{{ orderId }}
    ..
    userId: {{ userId }}
    status: "packed"
  /{{ orderId }}
    ..
    userId: {{ userId }}
    status: "shipped"

通过这种设计,我只能按orderId过滤,而不能过滤statususerId

当前,在应用程序层,当我需要按statususerId进行过滤时,我仍然会从Firebase提取所有Order条记录,并让应用程序仅显示我所记录的需要

1 个答案:

答案 0 :(得分:0)

  

通过这种设计,我只能按orderId进行过滤,而不能按status或userId进行过滤。

您可以使用以下命令订购/过滤状态:

ref.orderByChild("status").equalTo("received")

您可能想看看ordering and filtering data上的Firebase文档。