データベース設計

<< 戻る   トップ >>

ゲームを成敗したので、鴨乃嘴南蛮システムの設計について悩み、かつ楽しみつつ休日を過ごすことにしよう。

せっかくだから投稿記事をデータベース化しつつ管理しよう、というところでなんとなく思考停止に陥っていたわけだ。とにかくデータベースの表を作ってみることにしよう。

記事表
記事ID記事タイトル

これだけでいいのではないか、と思う。他に必要な項目がないか検討してみよう。

投稿者/ID

今回のシステムでは、複数の投稿者がいることを前提とはしない。したがって、投稿者に関する項目は不必要とする。

投稿日など

投稿と履歴について少し考えてみたほうがよいのかもしれない。できれば投稿の編集履歴は残したいのである。日記程度ならどうでもよいのだが、それなりの記事を投稿することもあるためだ。したがって、記事表の他に投稿履歴表が必要となる。

投稿履歴表
日付記事ID操作

操作は {新規|編集|削除} あたりから選択する形式になるだろう。おそらく「操作表」までは必要とするまい

それにしても、新規投稿と最終更新の日付あたりは「投稿表」にも入っていた方が実用的かもしれない。どうもそのような気がしてきた。そこで、投稿表 ver2 に作成日時と更新日時を追加する。

記事表 改
記事ID記事タイトル作成日時更新日時
コメントおよびトラックバック

これらの機能を付与するかどうかは迷っているところだが、どうせ1記事に複数のコメントやトラックバックを考慮しなくてはならなくなるのだから、コメント表及びトラックバック表が必要となるだろう。現時点で考慮しなくてもよさそうな気がする。ただ、記事あたりのコメント数やトラックバック数はあった方がよいかもしれない。したがって記事表にコメント数、トラックバック数のフィールドを付加すればよい。

MySQL でカラムの追加にどれほどのベナルティがあるのか不明だが、最初から複雑すぎるものにするのも何なのでこれらのフィールドについては後付けの方針で臨むことにする。

カテゴリ

カテゴリについては、複数カテゴリを指定できるものとしたい。そうなると、カテゴリ表が必要となってくる。また、カテゴリにツリー関係を持たせたい。

カテゴリ表
カテゴリIDカテゴリ名称親カテゴリID

また、カテゴリと記事の関係を示す「カテゴリ・記事関係表」も必要となるだろう。

カテゴリ・記事関係表
記事IDカテゴリID

もし主カテゴリの概念を追加するならば、記事表に主カテゴリフィールドを設置することになる。しかし、これまでの経験上、複数カテゴリを指定したときにかならずしも主カテゴリが決まるわけではない。したがって「主カテゴリ」概念は導入しないことにする。

収納場所

記事の収納場所をどうするかというのも考えどころである。詳しくは調べていないが、MySQL には Text というフィールド属性があるらしいので、ここにぶち込んでしまうというのもひとつの手段だ。手段としては、

  1. 記事表に直接ぶちこむ
  2. 記事IDから自動的にパスが決まるファイルに収納
  3. 手動でパスを決定

が挙げられる。おそらく自動/手動パス設定は並用されることになるだろう。記事表にぶちこむのは乱暴な気がするが魅力的な手段だ。とにかく、記事収納に関するフィールドが必要、ということで、とりあえず「記事内容/場所」という漠然とした名称で記事表にフィールドを追加しておこう。

記事表 本日最終版
記事ID記事タイトル作成日時更新日時記事内容/場所

作成: 2006-04-16 19:30:39.0更新: 2006-07-29 16:49:22.0
http://museo-anonimo.jp/nanban/?id=202,http://museo-anonimo.jp/nanban/tr/202