Firebase 实时数据库 - 对 FirebaseDB 中每天变化的班次数量进行建模



我正在使用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 等)。

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

如果要存储每天的单独班次,请将这些天的级别添加到 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
                      }
        }
    }
}

最新更新