要求分析
管理者
・ログイン及びログアウト ・記事の作成、更新、削除 ・記事の公開、非公開、アーカイブ化 ・コメントの承認と削除
閲覧者
・記事の閲覧 ・コメント投稿
追加要求
・システムのホームページは直近の記事リストを表示する。 ・ページに10件以上の記事がある場合、複数のページにわたって表示する。 ・記事とその記事のコメントを一緒に表示する。 ・特定のタグを持つ記事の一覧を表示する。 ・タグの使用頻度を示すタグクラウドを表示する。 ・直近のコメントをリスト表示する。 ・テーマは変更可能である。 ・SEOに適したURLを使用する。
全体の設計
要求分析に基いて、以下のデータベーステーブルを使用する。
ユーザー情報テーブル:tbl_user
ブログ投稿者の情報及びログインする為の管理者情報を管理するテーブル username:ユーザー名(必須) password:パスワード(必須) email:メールアドレス(必須) profile:プロフィール(必須)
記事情報テーブル:tbl_post
ユーザー情報を下にブログの投稿管理するテーブル title:記事のタイトル(必須) content:記事の本文(必須) tags:記事をカテゴリ化するためのカンマ区切りの単語リスト status:記事の公開状態(必須)以下の何れかの値をとる 1,記事は下書きで公開されていない。 2,記事は公開されている。 3,記事は公開期間を過ぎ、記事リストには現れない(ただし個別のアクセスによる表示は可能) create_time:作成日 update_time:更新日 author_id:投稿者ID
コメント情報テーブル:tbl_comment
ブログ記事を下にコメントの投稿管理するテーブル content:コメント本文(必須) status:コメントの公開状態(必須)以下のいずれかの値をとる 1,未承認 2,承認 create_time:作成日 author:コメント投稿者名(必須) email:コメント投稿者メールアドレス(必須) url:コメント投稿者のウェブサイトURL post_id:記事ID
タグ情報テーブル:tbl_tag
タグクラウド機能を実装するために必要な、記事のタグ頻度情報を管理するテーブル name:タグ名(必須) frequency:タグが記事に出現する回数(必須)
ルックアップ情報テーブル:tbl_lookup
整数値とテキストのマッピングを管理するテーブル 例として整数値1を記事が下書きであることを表すがエンドユーザーに表示するテキストは"下書き"と表示される。 name:データ項目のテキスト表現(必須) code:データ項目の整数値表現(必須) type:データ項目の型(必須) position:同じ型のデータ項目の中での相対的な表示順序(必須)
上記を踏まえた上でのER図
参考サイト:
http://www.yiiframework.com/doc/blog/1.1/ja/start.requirements