Datenbank-schema zur effizienten Anwesenheits-management-system
Ich entwickle eine Teilnahme-system für die Schule, die sorgen sowohl für Mitarbeiter als auch für Studenten.
Dem aktuellen db-schema ist
attendance
Tabelle
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
Dann gibt es verschiedene Tische für Personal & Studenten, die für die Speicherung der tatsächlichen Teilnahme-Werte.
Für die Mitarbeiter, die Teilnahme ist gespeichert in attendance_staff
. Das Datenbank-schema ist
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
Für die Mitarbeiter, ich bin die Speicherung sowohl vorhanden als auch nicht vorhanden Einträge in der Tabelle.
Nun die Teilnahme für Studenten hat, zu enthalten.
Da Stand jeder Tag ist schon gespeichert in attendance
Tabelle, können wir speichern nicht vorhanden ist-Werte für jeden Schüler, der in der Anwesenheit der Schüler-Tabelle.
Wie die Anwesenheit der Schüler-Tabelle gespeichert werden nur die Einträge für diese Tage, die sind nicht auf einen bestimmten Tag.
Schema für attendance_student
werden
attendance_id - references attendance table
student_id - references student table
status - will be leave / absent etc other than present.
Wird es sein, die effiziente Berechnung der Gegenwart aus Magnettafel mit outer-join??
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nicht benötigen Sie einen outer-join zu berechnen, die Teilnahme für die Schüler. Man könnte einfach die Anzahl der Datensätze in Ihrer Magnettafel (eine Zeit, da wäre es für alle Studenten gleich) und dann einfach wählen Sie aus der Anwesenheit der Schüler-Tabelle zu bekommen Abwesenheiten.
Wenn Sie es vorziehen, zu zählen, die Teilnahme mit einer outer-join-Sie konnte. Es ist wahrscheinlich mehr als effizient genug, wenn Sie über einen index auf Ihre Teilnahme-Tabelle Primärschlüssel und der Fremdschlüssel aus der Anwesenheit der Schüler-Tabelle, um Ihre Teilnahme Tisch.