我正在用java制作一个考勤管理应用程序,我在制作其数据库模式时面临一个问题,我想存储考勤并按月和学期显示。 我决定以下架构:
STUDENTS(name,class,roll... ) table ,
ATTENDANCE(rollNo , attendanceStatus , date) table ,
SUBJECTS(class , subject, subId...) table.
但是这里出现的问题是,如果我每天必须参加一个有 50 名学生和 5 场主题讲座的类(class),那么每天在出勤表中添加的总行数是 50x5,那么我的表将会增长很多!
这是一个错误的方法还是可以? 我想知道我是否可以将一场讲座的出勤率存储为某个对象,例如 json 对象?是否可以将json对象存储在mysql数据库中?
最佳答案
你可以,但这会违背良好数据库设计的目的。
我会推荐以下模式,假设学生只能参加或缺席类(class)(2 个状态):
学生(student_id,姓名)
类(class_id,class_name)
注册(enrollment_id、student_id、class_id)
缺勤(enrollment_id,日期)
这样,您就可以假设如果该学生当天不在缺勤
表中,则他们就出席了该类(class)。记录缺勤而不是出勤的原因是学生类的可能性比缺课的可能性更大,这意味着缺勤
表的增长速度不会像“出勤”表那样快。
关于java - 我可以通过java将数据以json对象的形式存储在mysql数据库中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663107/