本記事はDB設計の提案を記載します。
この設計はあくまで一例です。
これを雛形として、ご自分の構築したいシステムに合わせてご利用ください。
超簡易版から機能を盛り込んでいったものまで、複数種類を記載しています。
超簡易版
ユーザー毎に記事を書くだけの超簡易版ブログです。
言語習得やフレームワークの学習のためのチュートリアルとして用いられたりします。
ER図
テーブル
users: ユーザー
ユーザー情報。パスワードにそのまま値を入れるのは辞めましょう。セキュリティ的に危ないです。
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
email | メールアドレス | varchar(255) | | unique |
name | 名前 | varchar(255) | | |
password | ハッシュ化パスワード | varchar(255) | | |
articles: 記事
ブログ記事。記事の削除は物理削除。下書き機能もありません。
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
user_id | ユーザーID | int | | |
title | 記事タイトル | varchar(255) | YES | |
content | 記事本文 | text | YES | |
created_at | 作成日時 | datetime | | |
updated_at | 更新日時 | datetime | | |
下書き機能をつける
ER図
テーブル
users: ユーザー
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
email | メールアドレス | varchar(255) | | unique |
name | 名前 | varchar(255) | | |
password | ハッシュ化パスワード | varchar(255) | | |
articles: 記事
published_atがnullの場合は下書き状態です。現在以前という解釈にすれば、公開予約として機能を持たせることが出来ます。
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
user_id | ユーザーID | int | | |
title | 記事タイトル | varchar(255) | YES | |
content | 記事本文 | text | YES | |
published_at | 公開日時 | datetime | YES | |
created_at | 作成日時 | datetime | | |
updated_at | 更新日時 | datetime | | |
記事にカテゴリをつけられる
記事にカテゴリ(タグと読み替えてもOK)を複数付与できるようにします。
ER図
テーブル
users: ユーザー
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
email | メールアドレス | varchar(255) | | unique |
name | 名前 | varchar(255) | | |
password | ハッシュ化パスワード | varchar(255) | | |
articles: 記事
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
user_id | ユーザーID | int | | |
title | 記事タイトル | varchar(255) | YES | |
content | 記事本文 | text | YES | |
published_at | 公開日時 | datetime | YES | |
created_at | 作成日時 | datetime | | |
updated_at | 更新日時 | datetime | | |
articles_categories: 記事-カテゴリ
多対多の中間テーブル。複合PK。
物理名 | 論理名 | 型 | Null | 備考 |
---|
article_id | 記事ID | int | | primary |
category_id | カテゴリID | int | | primary |
categories: カテゴリ
物理名 | 論理名 | 型 | Null | 備考 |
---|
id | ID | int | | primary |
name | カテゴリ名 | varchar | | |
コメント