Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е добър дизайн на база данни (схема) за база данни за посещаемост?

В бойните изкуства инструкторите също са студенти - така че Instructor таблицата е подтипизирана в Student маса. Всички общи полета са в Student таблица и само колони, специфични за инструктори, са в Instructor таблица.

Art таблицата има списък на изкуствата, които училището предлага (джудо, карате...).

Училището може да има няколко стаи, те са изброени в Room таблица.

ClassSchedule описва публикувания график на учебните часове, които училището предлага.

Присъствието се записва в Attendance таблица.

Един ред в Calendar таблицата е един календарен ден (дата). Таблицата има свойства за дата като DayOfWeek , MonthName , MonthNumberInYear и др.

Един ред в TimeTable е една минута на ден, например 7:05.

Календар и разписание позволяват лесно отчитане на посещаемостта по дата/час, например

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

Надявам се това да ви помогне да започнете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се свържа с Cloud SQL MySQL база данни от App Engine?

  2. Синтаксис на SQL UPDATE – Изброен от СУБД

  3. PDO::PARAM за дати?

  4. Не мога да добавя mysql драйвер към jboss

  5. ГРЕШКА в PDO:Извикване на функция-член подготви() на null