Разработвам система за присъствие в училище, която ще обслужва както служителите, така и учениците.
Текущата db схема е
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.
Ще бъде ли ефективно да се изчислят настоящите дни от таблицата за посещаемост с помощта на външно съединение??
Благодаря предварително.