とりあえず、ウェブアプリを作る上でテーブル定義を考えます。
どういった物を作るかは、以前の記事で書いています。
ざっとイメージだけ図にまとめて、
それっぽく見えるように、SQLWorkbenchに落としこみます。
テーブル定義
本来、設計は非常に重要な作業なのですが「これで良いのか?」と思いつつ、考えるより手を動かすことを優先します。
最近数年間はSQLを手書きで書くことがほとんどないので、SQLの知識と技術は落ちていくばかりです。
SQLworkbenchのDiagramはそんな私にも絵面で視覚的に見れるので便利です。
SQLも発行してくれるし。ただ、Djangoでは不要なので今回は確認のみで使います。
後々は使うかもですが。
久しぶりにこの手の設計を考えると、データ型に悩みます。
例えば、「ID」のデータ型はINTかCHRAかとか。
IDに6桁の会員番号を入れたい時、先頭の数字が「0」から始まるような場合はINTでは桁落ちしてしまうのでCHRA(6)の方が良いとか考えましたが、今回は以下の要件を設定した上でINTにしました。
- IDは1から昇順に番号を振る
- 会員番号は使わない
実際の仕事であればありえない設計ですが、試しに作る上ではできるだけ簡単に考えます。
あとは、テーブル項目の紐付けとかざっと考えて。
仕様
ScoringSheetテーブルで機能的にやりたいことは、
- 実技試験の採点者(Markers)は5名
- 項目score1~5に0~10点を0.5刻みで入力
- 項目totalPointsにscore1~5の合計点を設定
- totalPointsが~点以上の場合、項目praticalResultに「合格」を設定
- 項目writtenExamPointsに筆記試験点数を入力
- writtenExamPointsが~点以上の場合、項目writtenExamResultに「合格」を設定
- praticalResultが「合格」かつ、wrritenExamResultが「合格」の場合、項目judgementに「合格」を設定
みたいな感じです。
Exelで作るのは簡単で、ウェブアプリとしてもなんてことないように感じますが、いざやろうとすると結構悩みます。
とりあえずはやってみないと。