超簡易版から機能を盛り込んでいったものまで、複数種類を記載しています。
超簡易版
ユーザー毎に記事を書くだけの超簡易版ブログです。
言語習得やフレームワークの学習のためのチュートリアルとして用いられたりします。
ER図
erDiagram
users ||--o{ articles : x
users {
int id
varchar email
varchar name
varchar password
}
articles {
int id
int user_id
varchar title
text content
datetime created_at
datetime updated_at
}
テーブル
users: ユーザー
ユーザー情報。パスワードにそのまま値を入れるのは辞めましょう。セキュリティ的に危ないです。
物理名 | 論理名 | 型 | Null | 備考 |
---|---|---|---|---|
id | ID | int | primary | |
メールアドレス | 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図
erDiagram
users ||--o{ articles : x
users {
int id
varchar email
varchar name
varchar password
}
articles {
int id
int user_id
varchar title
text content
datetime published_at
datetime created_at
datetime updated_at
}
テーブル
users: ユーザー
物理名 | 論理名 | 型 | Null | 備考 |
---|---|---|---|---|
id | ID | int | primary | |
メールアドレス | 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図
erDiagram
users ||--o{ articles : ""
articles ||--o{ articles_categories : ""
categories ||--o{ articles_categories : ""
users {
int id
varchar email
varchar name
varchar password
}
articles {
int id
int user_id
varchar title
text content
datetime published_at
datetime created_at
datetime updated_at
}
categories {
int id
varchar name
}
articles_categories {
int article_id
int category_id
}
テーブル
users: ユーザー
物理名 | 論理名 | 型 | Null | 備考 |
---|---|---|---|---|
id | ID | int | primary | |
メールアドレス | 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 |
コメント