Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa desain (skema) database yang baik untuk database kehadiran?

Dalam seni bela diri, instruktur adalah siswa juga -- jadi Instructor tabel disub-ketik ke Student meja. Semua bidang umum ada di Student tabel dan hanya kolom khusus untuk instruktur yang ada di Instructor tabel.

Art meja memiliki daftar seni yang ditawarkan sekolah (judo, karate ...).

Sekolah mungkin memiliki beberapa ruangan, ini tercantum di Room tabel.

ClassSchedule menjelaskan jadwal kelas yang dipublikasikan yang ditawarkan sekolah.

Kehadiran dicatat dalam Attendance tabel.

Satu baris di Calendar tabel adalah satu hari kalender (tanggal). Tabel memiliki properti tanggal seperti DayOfWeek , MonthName , MonthNumberInYear dll.

Satu baris di TimeTable adalah satu menit dalam sehari, seperti 7:05.

Kalender dan Tabel Waktu memungkinkan pelaporan kehadiran yang mudah berdasarkan tanggal/waktu, misalnya

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

Semoga ini membantu Anda memulai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks set karakter awal yang tidak diketahui '255' diterima dari server

  2. MySQL ONLY IN() klausa yang setara

  3. Memasukkan nilai kotak centang ke dalam database

  4. Apa tujuan dari character_set_connection?

  5. Bagaimana cara SUM dan SUBTRACT menggunakan SQL?