PHP TOP】【PGSQL TOP
何作るか考えよう.
クラスはいいや,あんなもんで.
次行こう,次.

・・というわけで何か作り始めることにします.
何かじゃあかんのでゲストブック(兼自動リンク)を作っていくことにしました.

ゲストブックの大雑把な仕様
仕様がある程度はっきりしていないと作れないのでここで簡単に定義しておきます.
  • ごく普通のゲストブック.
  • URLも登録できるようにして自動リンクとしても使えるようにする.
  • 登録は誰でもできるようにする.
  • 削除・編集は管理者パスワードを知っている人のみ.
  • 地域くらい入れてもらおう(検索項目になるしDBっぽいよな・・と)

大まかな考え方の順序
まず,データベースに登録するデータの構造を考えます.
今回作ろうとしているのはゲストブックですので最低限必要なデータは以下の5つです.
  • 名前
  • メール
  • URL
  • コメント
  • カテゴリ(ゲストブックでは地域.自動リンクの場合はジャンル.)
 
これらの他にも以下のデータを保存することにしました.
普通は削除とかできるものは削除フラグとか作って実際は消さなかったりするんですがDELETE構文がちゃんと動くか試してみたいのでここでは作りません.
  • ID(オートナンバーの主キー.編集時などデータの特定に使用します.)
  • 更新日(DBのデータには日付は付き物だと思っといてください.)
  • リモートホスト(面倒なんでやりませんがしつこいやつはキックできるように.)
 
・・で,これらの登録項目でテーブルを作成します.
・・の前にデータベースを作成しておいてください.名前はとりあえず”gbook”でいいや^^;
 createdb gbook
みたいな感じで.

テーブル作成のためのSQLはコレです.
  1. create table tdata (
  2. id serial primary key,
  3. name text,
  4. mail text,
  5. url text,
  6. mess text,
  7. cat text,
  8. date timestamp default 'now',
  9. host text
  10. );
 
ちょっと補足説明しときます.
まず,使えるかもしれませんけどフィールド名には日本語は使わない.
idに使われているserial型は自動的に番号が振られる型です.主キーはダブって登録されると困るのでコレを使っときます.
idで指定されているprimary keyは主キーを指します.データの編集,削除を行うテーブルに関してはデータ特定のために主キーを付けとくのが便利です.
dateで指定されているdefaultは既定値を指定します.insert時に指定が無い場合,既定値が代入されます.
 
本来カテゴリみたいなものは別テーブルに内容を保存してIDで保有するのがいいんですけど面倒なので今回はパス.この人正規化すら知らんのちゃう?とか思わんでください,お願い^^;
あと,フィールド名の日本語表記を別テーブルで保持して実行時に呼び出して・・とか処理させると楽なんですが処理が重くなるのでパス.phpソース内に対応フィールド名を配列として保有させることにします.
 
何も進んでない気がするけど今回はこんなもんで終わりにします.
※テーブル作成のSQL,まだ試してないのでダメかもしれません.ある程度組みあがってから試す方なので現状ではテーブル定義をしただけ,くらいの感じで読んどいてください.

目次】【第1回】【第2回】【第3回】【第4回】【第5回】【第6回】【第7回

(c)2002-2003 by misky