職場実習7日目

今日はSS投稿サイトのDBを構築し、perlを使って操作できるようにする。

データベース仕様

DB構造は前回書いたような一つの表にまとめる事はせず、用途別に分けた。全部をオブジェクトとして一つにまとめてしまうと外部キーを使えなくなり、DB構造をSQL上で書けなくなり、プログラム上で判別せざるを得なくなるからだ。
よって、以下のように表を分ける事にした。

  • 会員情報
    • 番号(シリアル値)
    • メンバーID・キー
    • 名前(漢字・ふりがな)
    • 性別
    • 生年月日
    • 登録日
    • 住所
    • メールアドレス
    • ホームページURL
    • 電話番号・携帯番号
    • 自己紹介文
  • サークル情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成管理者ID・キー
    • サークルページURL
    • グループ番号(ジャンル・作品)
  • サークルメンバー情報
    • 番号(シリアル値)
    • サークル番号
    • メンバー番号
    • メンバー権限
  • グループ情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成者ID・キー
    • 種別:ジャンル・作者・作品(シリーズ)・巻(作品)・部・章
    • 親グループ番号
    • サークル番号
  • SS情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成者ID・キー
    • SS内容ファイルURL
    • 書式番号
    • 挿絵番号
    • グループ番号
    • サークル番号
  • SS書式情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成者ID・キー
    • 書式ファイルURL
    • グループ番号
    • サークル番号
  • SS挿絵情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成者ID・キー
    • 画像ファイルURL
    • グループ番号
    • サークル番号
    • 用語番号
  • SS用語情報
    • 番号(シリアル値)
    • 名前(表記・ふりがな)
    • 作成者ID・キー
    • 説明ファイルURL
    • 区分:人物名・固有名詞・用語
    • グループ番号
    • サークル番号
セッション管理

perlでセッション管理できないものかと色々調べてみたら、ライブラリを使う方法があるらしい。
CGI::Session.pmでセッション管理
CGI::Session - CGIアプリケーションにおける持続的なデータのセッション
perlライブラリをパッケージ形式で簡単にインストールできるツールが見付かったので、これを使う。
CPAN 初級

DBへのアクセス処理のデバッグ

コマンドライン上ではエラーメッセージが表示されるので、特定しやすいが、
Webブラウザ上でエラーが起こると画面に何も表示されないため、エラー箇所の特定が難しい。
そこで、同じような所でつまづいている人がいないか調べてみたら、やっぱりいた。
デバッグの基本 'PERL-LABO'
これに早く気付くべきだった。早速使ってみよう。