我熟悉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
过滤,而不能过滤status
或userId
当前,在应用程序层,当我需要按status
或userId
进行过滤时,我仍然会从Firebase提取所有Order
条记录,并让应用程序仅显示我所记录的需要
答案 0 :(得分:0)
通过这种设计,我只能按orderId进行过滤,而不能按status或userId进行过滤。
您可以使用以下命令订购/过滤状态:
ref.orderByChild("status").equalTo("received")
您可能想看看ordering and filtering data上的Firebase文档。