AnsweredAssumed Answered

正規化されたDBから表形式にするには?

Question asked by d.o on Jul 19, 2009
Latest reply on Aug 27, 2009 by d.o

タイトル

正規化されたDBから表形式にするには?

フォーラムに投稿

みなさんこんにちは

 

分かりにくいタイトルですみません。

 

たとえば...テストの点数のような情報があったとします

 

氏名 国語 数学 英語 社会 理科

安藤 30 40 50 60

佐藤 20 60 80    80

鈴木 40 20 50 50

 


理科と社会は選択科目なので空欄があります。また、見出し(国語、数学...)の部分は学年やクラスによって科目数や内容が変わるとします。カリキュラムが変わったりすると..まったく別のものになることもあります。

 

さて、こういう 情報をDB化するなら、正規化して下のようにしますよね?

 

氏名 科目名 得点

安藤 国語  30

安藤 数学  40

安藤 英語  50

安藤 社会  60

佐藤 国語  20

佐藤 数学  60

佐藤 英語  80

佐藤 理科  80

鈴木 国語  40

鈴木 数学  20

鈴木 英語  50

鈴木 社会  50

 

(氏名は同姓同名の可能性があるので本当はキーに適さないですよね。実際には学生番号等のユニークな値をキーにするとは思います) 

こうしておけばテストを受けている科目が人によって違っても問題ありませんし、 カリキュラムが変わって科目の名称が変わっても問題無いと思います。

さてさて、問題はこのように正規化されたDBから元の一覧表のように表示・印刷させるにはどうしたら良いかということです。

 

印刷用に一時的に使用するテーブルを作って、そこへインプットというのも考えたのですが...。もっとスマートな方法はないものでしょうか?

よろしくお願いします。 

Outcomes