Я разрабатываю систему посещаемости школы, которая будет обслуживать как сотрудников, так и студентов.Схема базы данных для эффективной системы управления посещаемости
Текущая схема дб
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.
Будет ли это эффективно рассчитать нынешние дни из таблицы посещаемости с помощью внешнего соединения ??
Заранее спасибо.
Спасибо, Джоэл. Если статус настоящего также хранится в базе данных также для каждого ученика за каждый день. Как насчет того, чтобы в прошлом году я посещал конкретный студент? Как это можно проверить, был ли ученик доступен для посещения в то время или нет. Был ли он активным/неактивным/приостановленным и т. Д. Потому что для неактивных студентов посещаемость не будет доступна в системе. – Ehs4n
@ Ehs4n - Если бы это был я, я бы точно хранил _present_. Я бы сделал это, потому что он отличал бы присутствующих студентов и отсутствующих данных. Пока регистрация не будет записана, вы не можете определить, присутствует ли учащийся, или если посещаемость «будет определена». Для исторических данных, если вы очищаете любую из своих таблиц, когда ученики покидают школу или начинается новый учебный год, вы можете рассмотреть возможность хранения дополнительного набора исторических архивных таблиц, которые включают в себя учебный год в качестве дополнительного поля. Вместо того, чтобы удалить студентов, которые уходят, архивируйте их вместо этого. –
Еще раз спасибо за понимание. Будете ли вы бросить больше света на функцию архива. Как это можно достичь? – Ehs4n