sql >> Databáze >  >> RDS >> Mysql

Jaký je dobrý návrh databáze (schéma) pro databázi docházky?

V bojových uměních jsou instruktoři také studenty – tedy Instructor tabulka je podtypována pod Student stůl. Všechna běžná pole jsou v Student tabulka a pouze sloupce specifické pro vyučující jsou v Instructor tabulka.

Art tabulka obsahuje seznam umění, která škola nabízí (judo, karate ...).

Škola může mít několik místností, ty jsou uvedeny v Room tabulka.

ClassSchedule popisuje zveřejněný rozvrh hodin, které škola nabízí.

Účast je zachycena v Attendance tabulka.

Jeden řádek v Calendar tabulka je jeden kalendářní den (datum). Tabulka má vlastnosti data jako DayOfWeek , MonthName , MonthNumberInYear atd.

Jeden řádek v TimeTable je jedna minuta dne, například 7:05.

Kalendář a rozvrh umožňují například snadné vykazování docházky podle data/času

-- 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 ;

Doufám, že vám to pomůže.



  1. mysql_connect():Nelze vytvořit žádné připojení, protože jej cílový počítač aktivně odmítl

  2. php:obrácení efektů mysql_real_escape_string na binární

  3. Smazat dotaz a obnovit v ListView v Androidu (sqlite)

  4. BIGINT výkon mysql ve srovnání s INT