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

ER図をSQL文にしたものが、ブログデモに含まれています。
上記 ER 図に対応する完全な SQL 文は ブログデモ で見つけられるでしょう。
このサンプルでは /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql にあります。
ブログアプリケーション開発を、以下のマイルストーンに分割します。
Signup or Login in order to comment.