要求分析によると、このブログアプリケーションのデータを保存するために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.