sql >> データベース >  >> RDS >> Mysql

出席データベースの優れたデータベース設計(スキーマ)とは何ですか?

    武道では、インストラクターも学生です。つまり、Instructor テーブルはStudentにサブタイプされます テーブル。すべての一般的なフィールドはStudentにあります テーブルとインストラクターに固有の列のみがInstructorにあります テーブル。

    Art 表には、学校が提供する芸術のリストがあります(柔道、空手...)。

    学校には複数の部屋がある場合があります。これらはRoomにリストされています。 テーブル。

    ClassSchedule 学校が提供するクラスの公開スケジュールについて説明します。

    出席はAttendanceに記録されます テーブル。

    Calendarの1行 表は1暦日(日付)です。テーブルには、DayOfWeekのような日付プロパティがあります 、MonthNameMonthNumberInYear など

    TimeTableの1行 7:05のように1日の1分です。

    カレンダーと時刻表を使用すると、たとえば、日付/時刻ごとに簡単に出席レポートを作成できます

    -- 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. EclipseLinkとJoda-Timeを使用してUTCで日時をデータベースに保存するにはどうすればよいですか?

    2. データベースの構造/設計

    3. データストレージ:アーカイブおよびHSMのRESTとPOSIX

    4. PDOを使用した単一行、単一列のフェッチ