0 follower

全体の設計

要求分析によると、このブログアプリケーションのデータを保存するために4つのデータベーステーブルが必要と考えられます。 User, Post, Comment および Tag です。

  • User はユーザ名、パスワードを含むユーザ情報を格納します。
  • Post は記事情報を格納します。主に以下のカラムから成ります:
    • title: 必須、記事のタイトル。
    • content: 必須、Markdown フォーマットで記述された記事の本文。
    • status: 必須、記事のステータス(公開状態)。以下のいずれかの値をとる。
      • draft: 記事は草稿で、公開されていない。
      • published: 記事は公開されている。
      • archived: 記事は公開期間を過ぎ、公開されていない。
    • tags: オプション、記事をカテゴリ化するためのカンマ区切りの単語のリスト。
  • Comment 記事へのコメントを格納する。各コメントは記事と関連付けられ、主に以下のカラムから成る:
    • name: 必須、コメント作成者名
    • email: 必須、作成者のメールアドレス
    • website: オプション、作成者のウェブサイトのURL
    • content: 必須、Markdown フォーマットで記述されたコメントの内容。
    • status: 必須、コメントが承認された(値 1)もしくは未承認(値 0)のいずれかの値をとるコメントのステータス(公開状態)。
  • Tag はタグ情報を格納する。各記事には複数のタグをつけることができ、おなじく各タグも複数の記事につけられる。Tag テーブルは各タグの使用頻度を計算するために必要で、主にタグクラウドポートレットで利用される。

以下の ER 図が上記のテーブルのテーブル構造とリレーションをあらわします。PostTag が多対多の関係であることに注目してください。PostTag テーブルを用いて、この多対多の関係を二つの一対多の関係へと分解します。

ブログデータベースのER図

ブログデータベースのER図

ER図をSQL文にしたものが、ブログデモに含まれています。

上記 ER 図に対応する完全な SQL 文は ブログデモ で見つけられるでしょう。 このサンプルでは /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql にあります。

ブログアプリケーション開発を、以下のマイルストーンに分割します。

  • マイルストーン 1: ブログシステムのプロトタイプを作成します。必要な機能の多くを含みます。
  • マイルストーン 2: 記事の投稿機能を完成させます。記事の作成、リスト表示、記事の表示、更新、削除を含みます。
  • マイルストーン 3: コメント作成機能を完成させます。コメント作成、リスト表示、承認、更新、削除を含みます。
  • マイルストーン 4: ポートレットを実装します。ユーザメニュー、ログイン、タグクラウド、最近のコメントを含みます。
  • マイルストーン 5: 最終調整とデプロイ。