CakePHP4でブログサイトを作ってみよう

CakePHP4で簡易ブログサイトを作ってみるコーナーです。

316 views

本章では、ブログのデータベースについて説明する。

E-R図

以下は、ブログのデータベースに関するE-R図である。

  1. ユーザ管理テーブル
    ブログのユーザを管理するテーブルである。
  2. 記事テーブル
    ブログの記事を管理するテーブルである。
  3. コメントテーブル
    ブログの記事についてのコメントを管理するテーブルである。コメントは一つの記事に複数のコメントを持つ。
  4. タグテーブル
    タグを管理するテーブルである。
  5. 記事とタグの関連テーブル
    記事とタグを関連付けるテーブルである。
  6. カテゴリテーブル
    カテゴリを管理するテーブルである。
  7. 記事とカテゴリの関連テーブル
    記事とカテゴリを関連付けるテーブルである。

テーブル一覧

各テーブルの定義について説明する。

ユーザ管理テーブル (users)

カラム名 データ型 説明
id INTEGER 主キー、一意のユーザ識別子
username VARCHAR(255) ユーザ名、一意である必要があります
email VARCHAR(255) ユーザのメールアドレス、一意である必要があります
password VARCHAR(255) ユーザのパスワードのハッシュ値
display_name VARCHAR(255) ユーザの表示名
bio TEXT ユーザの自己紹介文
profile_image VARCHAR(255) ユーザのプロフィール画像のURLまたはファイル名
created_at TIMESTAMP ユーザが作成された日時
updated_at TIMESTAMP ユーザ情報が最後に更新された日時
last_login TIMESTAMP ユーザが最後にログインした日時

記事テーブル (posts)

カラム名 データ型 説明
id INTEGER 主キー、一意の記事識別子
user_id INTEGER 外部キー、記事を作成したユーザのID
title VARCHAR(255) 記事のタイトル
content TEXT 記事の本文
slug VARCHAR(255) 記事のURLスラッグ
created_at TIMESTAMP 記事が作成された日時
updated_at TIMESTAMP 記事が最後に更新された日時
published_at TIMESTAMP 記事が公開された日時(下書きの場合はNULL)
status VARCHAR(255) 記事の状態(例: 下書き、公開、非公開)

カテゴリテーブル (categories)

カラム名 データ型 説明
id INTEGER 主キー、一意のカテゴリ識別子
name VARCHAR(255) カテゴリ名
slug VARCHAR(255) カテゴリのURLスラッグ
created_at TIMESTAMP カテゴリが作成された日時
updated_at TIMESTAMP カテゴリが最後に更新された日時

記事とカテゴリの関連テーブル (post_categories)

カラム名 データ型 説明
id INTEGER 主キー、一意の関連識別子
post_id INTEGER 外部キー、関連する記事のID
category_id INTEGER 外部キー、関連するカテゴリのID

コメントテーブル (comments)

カラム名 データ型 説明
id INTEGER 主キー、一意のコメント識別子
user_id INTEGER 外部キー、コメントを投稿したユーザのID
post_id INTEGER 外部キー、コメント対象の記事のID
content TEXT コメントの本文
created_at TIMESTAMP コメントが投稿された日時
updated_at TIMESTAMP コメントが最後に更新された日時
status VARCHAR(255) コメントの状態(例: 承認待ち、承認済み、削除済み)

タグテーブル (tags)

カラム名 データ型 説明
id INTEGER 主キー、一意のタグ識別子
name VARCHAR(255) タグ名
slug VARCHAR(255) タグのURLスラッグ

記事とタグ関連テーブル (post_tags)

カラム名 データ型 説明
id INTEGER 主キー、一意の関連識別子
post_id INTEGER 外部キー、関連する記事のID
tag_id INTEGER 外部キー、関連するタグのID

Page 10 of 15.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626