In martial arts, instructors are students too -- so the Instructor
table is sub-typed to the Student
table. All common fields are in the Student
table and only columns specific to instructors are in the Instructor
table.
The Art
table has list of arts that the school offers (judo, karate ...).
The school may have several rooms, these are listed in the Room
table.
ClassSchedule
describes the published schedule of classes that the school offers.
Attendance is captured in the Attendance
table.
One row in the Calendar
table is one calendar day (date). The table has date-properties like DayOfWeek
, MonthName
, MonthNumberInYear
etc.
One row in the TimeTable
is one minute of a day, like 7:05.
Calendar and TimeTable allow for easy attendance reporting by date/time, for example
-- Attendance of judo morning classes
-- for the first three months of the year 2010
-- by day of a week (Sun, Mon, Tue, ..)
select
DayOfWeek
, count(1) as Students
from ClassSchedule as a
join Calendar as b on b.CalendarId = a.CalendarId
join TimeTable as c on c.TimeID = a.StartTimeId
join Attendance as d on d.ClassId = a.ClassID
join Art as e on e.ArtId = a.ArtID
where ArtName = 'judo'
and Year = 2010
and MonthNumberInYear between 1 and 3
and PartOfDay = 'morning'
group by DayOfWeek ;
Hope this gets you started.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…