4

我正在为学校开发一个出勤系统,该系统将同时满足员工和学生的需求。

当前的数据库架构是

attendance桌子

id - primary key for this table
daydate  int(11) - stores timestamp of current day
timing_in varchar(18) - Start time for institution
timing_out - Closing time for institution
status - Status for the day, can be working day - 1 or holiday - 2

然后是员工和学生的不同表格,用于存储实际出勤值。

对于员工,考勤存储在attendance_staff. 数据库架构是

attendance_id - foreign key, references attendance table
staff_id - id of staff member, references staff master table
time_in - stores in timing of a staff member
time_out - stores out timing of a staff member
status - attendance status - can be one among the list, like present, absent, casual leave, half day, late mark, on duty, maternity leave, medical leave etc

对于员工,我在表中存储了当前和不存在的条目。

现在必须将学生的出勤率包括在内。

由于每天的状态已经存储在attendance表中,我们可以不将每个学生的当前值存储在学生出勤表中。

就像,学生出勤表将仅存储在特定日期不存在的那些日子的条目。

的架构attendance_student将是

attendance_id - references attendance table
student_id - references student table
status - will be leave / absent etc other than present.

使用外部联接从考勤表中计算当前天数是否有效?

提前致谢。

4

1 回答 1

2

您不需要外部联接来计算学生的出勤率。您可以简单地计算出勤表中的记录(一次,因为它对所有学生都是一样的),然后从您的学生出勤表中选择以获取缺勤。

如果您希望通过外部连接来计算出勤率,您可以。如果您在出勤表主键和从学生出勤表到出勤表的外键上有一个索引,那么它的效率可能会更高。

于 2012-12-31T19:55:22.800 回答