こゆめ自作ミニブログ計画のデータベース構造案

自作ミニブログをSQLiteで作成中です。そのデータベースのテーブル名や項目をメモしています。

  • 属性としてのタグの扱い
  • メインのpostテーブルにどこまで含めるか(hideとか)

この辺りはまだまだ悩み中です。アドバイスあったら下のお問い合わせ等でアドバイス下さい。

テーブル:post:ページデータ

各ページ(記事)およびトップページ、404ページ、サイドバー部分のデータを格納。

項目カラムデータ型備考
IDpidINTEGER PRIMARY KEY管理及び一部表示用
タイトルtitleTEXT短文の場合省略可能
スラッグslugTEXT任意URLアクセス用
本文contentTEXT省略不可
公開日date_pubTEXT手動で変更可能
更新日date_modTEXT手動で変更可能
概要descriptionTEXTmetaやOGP用
画像imageTEXTファイルとセットで管理

テーブル:relation:postとtagの組み合わせ

各ページとタグのリレーション情報を格納。

項目カラムデータ型備考
IDridINTEGER PRIMARY KEY管理用
ページIDpidINTEGERページ側のID
タグIDtidINTEGERタグ側のID

テーブル:tag:属性全般

ページの各種属性の情報を格納。

項目カラムデータ型備考
IDtidINTEGER PRIMARY KEY管理用
ラベルlabelTEXT表示名
スラッグslugTEXT一覧ページのURLアクセス用
概要descriptionTEXT一覧ページのmetaやOGP用
タグ属性typeTEXT一覧等での扱い用

タグ属性

(指定なし)
ページ分類用のタグ
hide
タグとしての表示や一覧ページ生成をさせないタグ

格納予定のタグ

雑記、Web便利帳 etc
今まで使っていた各種分類
hide
ページを非表示として扱う
system
ページをシステム用として扱う(サイドバーなど)

テーブル:option:全体オプション

システム全体のオプションを格納。

項目カラムデータ型備考
IDsidINTEGER PRIMARY KEY管理用
ラベルlabelTEXT管理用
スラッグslugTEXTコード内アクセス用
内容contentTEXT実際に引用される部分

格納予定のオプション

  • サイト名
  • indexとして使うページID
  • 404として使うページID
  • サイドバーとして使うページID