W sztukach walki instruktorzy też są uczniami — więc Instructor
tabela jest podtypowana do Student
stół. Wszystkie wspólne pola znajdują się w Student
tabela i tylko kolumny specyficzne dla instruktorów znajdują się w Instructor
tabela.
Art
tabela zawiera listę sztuk oferowanych przez szkołę (judo, karate...).
Szkoła może mieć kilka sal, są one wymienione w Room
tabela.
ClassSchedule
opisuje opublikowany harmonogram zajęć oferowanych przez szkołę.
Obecność jest rejestrowana w Attendance
tabela.
Jeden wiersz w Calendar
tabela to jeden dzień kalendarzowy (data). Tabela ma właściwości daty, takie jak DayOfWeek
, MonthName
, MonthNumberInYear
itp.
Jeden wiersz w TimeTable
to jedna minuta dnia, np. 7:05.
Kalendarz i harmonogram pozwalają na łatwe raportowanie obecności według daty/godziny, na przykład
-- 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 ;
Mam nadzieję, że dzięki temu zaczniesz.