自作ミニブログ計画のデータベース構造案
(公開日:)
自作ミニブログをSQLiteで作成中です。そのデータベースのテーブル名や項目をメモしています。
- 属性としてのタグの扱い
- メインのpostテーブルにどこまで含めるか(hideとか)
この辺りはまだまだ悩み中です。アドバイスあったら下のお問い合わせ等でアドバイス下さい。
テーブル:post:ページデータ
各ページ(記事)およびトップページ、404ページ、サイドバー部分のデータを格納。
| 項目 | カラム | データ型 | 備考 |
|---|---|---|---|
| ID | pid | INTEGER PRIMARY KEY | 管理及び一部表示用 |
| タイトル | title | TEXT | 短文の場合省略可能 |
| スラッグ | slug | TEXT | 任意URLアクセス用 |
| 本文 | content | TEXT | 省略不可 |
| 公開日 | date_pub | TEXT | 手動で変更可能 |
| 更新日 | date_mod | TEXT | 手動で変更可能 |
| 概要 | description | TEXT | metaやOGP用 |
| 画像 | image | TEXT | ファイルとセットで管理 |
テーブル:relation:postとtagの組み合わせ
各ページとタグのリレーション情報を格納。
| 項目 | カラム | データ型 | 備考 |
|---|---|---|---|
| ID | rid | INTEGER PRIMARY KEY | 管理用 |
| ページID | pid | INTEGER | ページ側のID |
| タグID | tid | INTEGER | タグ側のID |
テーブル:tag:属性全般
ページの各種属性の情報を格納。
| 項目 | カラム | データ型 | 備考 |
|---|---|---|---|
| ID | tid | INTEGER PRIMARY KEY | 管理用 |
| ラベル | label | TEXT | 表示名 |
| スラッグ | slug | TEXT | 一覧ページのURLアクセス用 |
| 概要 | description | TEXT | 一覧ページのmetaやOGP用 |
| タグ属性 | type | TEXT | 一覧等での扱い用 |
タグ属性
- (指定なし)
- ページ分類用のタグ
- hide
- タグとしての表示や一覧ページ生成をさせないタグ
格納予定のタグ
- 雑記、Web便利帳 etc
- 今まで使っていた各種分類
- hide
- ページを非表示として扱う
- system
- ページをシステム用として扱う(サイドバーなど)
テーブル:option:全体オプション
システム全体のオプションを格納。
| 項目 | カラム | データ型 | 備考 |
|---|---|---|---|
| ID | sid | INTEGER PRIMARY KEY | 管理用 |
| ラベル | label | TEXT | 管理用 |
| スラッグ | slug | TEXT | コード内アクセス用 |
| 内容 | content | TEXT | 実際に引用される部分 |
格納予定のオプション
- サイト名
- indexとして使うページID
- 404として使うページID
- サイドバーとして使うページID