在FirebaseDB中模拟每天变化的班次

时间:2019-01-18 00:40:50

标签: firebase-realtime-database nosql

我正在使用Android Studio和Google的Firebase数据库创建一个小型班次管理应用程序。

我希望它允许管理员从日历中选择一个日期并设置其他参数(例如,每个班次的雇员数,每个班次的开始和结束时间等)那一天。

这是我刚开始这个项目时想到的:

{                                                                
  "accounts" : {
                 "admin" : {
                             "email" : "admin@gmail.com",
                             "password" : 123
                           }
                 "user1" : {
                             "email" : "user1@gmail.com",
                             "password" : 234
                           }
              },                                                   
 "config" : {
                "shiftsPerDay" : {
                                   "Shift 2" : {
                                                 "end" : "00:00",
                                                 "name" : "eveningShift",
                                                 "numOfEmps" : 2,
                                                 "start" : "16:00",
                                                 "wage" : 0
                                              },
                                  "Shift 1" : {
                                                "end" : "16:00",
                                                "name" : "morningShift",
                                                "numOfEmps" : 3,
                                                "start" : "8:00",
                                                "wage" : 0
                                              }
                                 }
           }                                                              

但是,这只有在每天轮班数固定的情况下才有效。 我希望每个日期都有其自己的班次数量(例如1 / 18-3; 1 / 19-4; 1 / 20-1; ..1 / 25-3; 1 / 26-2等)。 / p>

是否有更好的方法使用Firebase对这种结构进行建模?

1 个答案:

答案 0 :(得分:0)

如果您想每天存储单独的班次,请将当日的级别添加到JSON结构中:

"config" : {
    "shiftsPerDay" : {
        "20190118": {
            "Shift 2" : {
                         "end" : "00:00",
                         "name" : "eveningShift",
                         "numOfEmps" : 2,
                         "start" : "16:00",
                         "wage" : 0
                      },
           "Shift 1" : {
                        "end" : "16:00",
                        "name" : "morningShift",
                        "numOfEmps" : 3,
                        "start" : "8:00",
                        "wage" : 0
                      }
        }
    }
}