考勤管理系统源码:使用QR码与Firebase设计考勤系统

我正在做一个学术项目。简单地说,这个想法是创建一个这样的考勤系统:

教师在网站登录他的帐户。

教师选择一个部分。

老师生成一个 QR 码,让学生扫描它参加。

学生使用android 应用程序登录他的帐户。

学生打开扫描仪以扫描 QR 码。

系统在该特定部分和特定日期标记该学生的出勤。

这是我使用的 firebase 数据库的设计

db{  
    Teachers{
         "cEEbohuR2bK6opZJ1z5RoPrbbrx1":{ //auth uid  
              tchName:"Jason",
              tchID:"24123"
    }
    Students:{
         "GsBEVEtZ9CeqzztDWEQd9GluVJJ3":{  //auth uid
              studentName:"Mark",
              stuID:"37294"
}
    Courses:{
         "JA101":{  //courseID
              courseName:"Java Programing",
}
    Sections:{  
        "56345":{ //secID
         tchID:"24123", //acts like a foreign key
         courseID:"JA101", //acts like a foreign key
           Students:{
            "37294":{
               studentName:"Mark"               
       }
   }
}
    Attendance:{  
        "56345":{ //secID
           "1-8-2018":{ //auto generated date?
               "37294":{ //stuID
                  attended:"true" // sets to true after scanning the qr code
            }
          }
        } 
     }
  }

我对 qr 代码的想法是,当老师生成它时,QR 中的值将是部分 ID,然后不知何故,当学生扫描它时,我需要将其与学生 ID 合并,在获得两个值之后,我需要自动生成讲座的日期,所以我将有3 个值(secID,stuID,date)将其插入到出勤树中,并使“attended

现在我的问题是:

有没有更好的方法来设计我的 DB?

是我上面的 qr 想法可能执行还是有更好的方法?

0

您是否需要教师检索出勤列表?如果您的需求不同,您在上面显示的嵌套对象可能会更平坦。在 Firebase 中,您需要在视图之后创建数据库结构(例如,您将从数据库中检索要显示给用户的内容)。强烈建议不要嵌套,并且可以接受重复数据。

例如,如果我希望用户通过选择部分 ID 和日期来读取与会者列表,我会创建一个这样的表:

Attendance:{
    "123456":                //section ID
       {"01-08-2019":        //date
           {"865768": true}  //student ID: attendance status  
       }
           }

我可以使用引用检索与会者列表:

`Attendance/${sectionID}/${date}/`

或者,如果我希望我的用户点击学生的 ID 并检索学生的所有出勤记录,我可以有一个更平坦的列表:

AttendanceRecord: {
     "865768": {     //student ID
     "LxLy1a":   {   //unique attendance record key
               date: "01-08-2019",
               sectionId: "123456",
               status: true
                }                       
                   }

如果我的应用程序的视图不同,我将不得不以不同的方式构建我的数据库,以便数据更容易从 Firebase 中读取,而不会太深入嵌套对象。

您一定不要太害怕复制数据。根据应用中的视图更改数据库。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(3)
Oracle数据库的特点:克隆没有数据的 oracle数据库
上一篇
Se sam:使用SAM时 AWSsambuild和sam包有什么区别
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(48条)