Nas artes marciais, os instrutores também são alunos -- então o
Instructor tabela é subtipada para o Student tabela. Todos os campos comuns estão no Student tabela e apenas colunas específicas para instrutores estão no Instructor tabela. A
Art tabela tem lista de artes que a escola oferece (judô, karatê...). A escola pode ter várias salas, estas estão listadas na
Room tabela. ClassSchedule descreve o cronograma publicado de aulas que a escola oferece. A participação é capturada em
Attendance tabela. Uma linha no
Calendar tabela é um dia de calendário (data). A tabela tem propriedades de data como DayOfWeek , MonthName , MonthNumberInYear etc. Uma linha na
TimeTable é um minuto de um dia, como 7:05. Calendário e Tabela de Horários permitem relatórios fáceis de presença por data/hora, por exemplo
-- 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 ;
Espero que isso faça você começar.