考勤管理数据库设计

时间:2013-02-18 06:53:21

标签: c# asp.net sql sql-server sql-server-2008

我正在为大学创建一个考勤管理网站,到目前为止我有这个:

AttendanceId Pk,
RollNo,
Date,
Lecture1,
Lecture2,
Lecture3,
Lecture4,
Lecture5...till lecture10

每次讲座都要记录。

我知道这不是一个非常好的设计,因为有很多Lecture专栏,还有其他方法吗?

如果每天要记录5000名学生的出勤率,这种桌子会消耗多少空间?

1 个答案:

答案 0 :(得分:2)

是。你的表格不是normalized这种方式。更好的是,创建一个新表:

<强> AttendanceLectures

  • AttendanceId外键引用出勤表,
  • LectureId外键引用讲座表,
  • ...

使用复合键(ATtendanceIdLectureID)。

<强> Lectures

  • LectureId
  • ......其他详情

您的表格Attendances就是这样:

  • AttendanceId Pk,
  • RollNo
  • AttendanceDate