DBテーブル構成を考えつつMYSQLを書いてみた(CakePHP修行 #3)
Sat, Jun 28, 2008DBテーブル作成のためのCREATE TABLE文をとりあえず作ってみたので、晒してみます。そのうちER図作成ツールを使ってきれいにまとめたいです。テーブル構造はこんな感じです。
- SCHEDULE … イベントスケジュール
- USER … ユーザー情報
- GROUP … グループ情報(管理者/一般メンバー等)
- HOLIDAY … 祝日情報
- ENTRY_USER … ユーザー出欠情報
- PICTURE … イベント写真情報
- FREETALK … フリートーク
(※追記:2008/6/30)
mySQLでコメントに「–」が使えないことが判明orz。
ソースを修正しました。
CREATE DATABASE clbs character SET utf8; /*-------------------------------------------------------- --SCHEDULE --TABLE:イベントのスケジュール(カレンダー等に反映) ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_schedules; CREATE TABLE `clbs_schedules` ( `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT , `title` VARCHAR( 64 ) NOT NULL , /* スケジュールのタイトル */ `content` TEXT NOT NULL , /* スケジュールの内容 */ `start` DATETIME NOT NULL , /* 日時(開始) */ `end` DATETIME default NULL , /* 日時(終了) */ `place` VARCHAR( 64 ) NOT NULL , /* 場所 */ `user_id` INT(11) NOT NULL, /* 幹事/企画者 */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --USER --TABLE:ユーザー(メンバー)情報 ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_users; CREATE TABLE `clbs_users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `password` VARCHAR(32) NOT NULL, /* パスワード */ `username` VARCHAR(255) NOT NULL, /* ユーザー名 */ `group_id` INT(11) NOT NULL, /* グループID(管理者・一般ユーザー等) */ `pic` VARCHAR(255), /* ユーザー画像(ファイル名) */ `mail` VARCHAR(255), /* メールアドレス */ `site` VARCHAR(255), /* サイトやブログのURL */ `hobby` VARCHAR(255), /* 趣味 */ `favarite` VARCHAR(255), /* 好き */ `messanger` VARCHAR(255), /* メッセンジャー */ `comment` VARCHAR(255), /* コメント */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --GROUP --TABLE:ユーザーのグループ(管理者・一般ユーザー等) ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_groups; CREATE TABLE `clbs_groups` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `groupname` VARCHAR(255) NOT NULL, /* グループ名 */ `auth` TINYINT(4) NOT NULL, /* 権限値 */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --HOLIDAY --TABLE:祝日を管理 ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_holidays; CREATE TABLE `clbs_holidays` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `holidaydate` DATETIME NOT NULL , /* 祝日日時 */ `holidayname` VARCHAR(255) NOT NULL, /* 祝日名称 */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --ENTRY_USER --TABLE:イベントの出欠情報 ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_entry_users; CREATE TABLE `clbs_entry_users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `schedule_id` INT(5) NOT NULL, /* イベントID */ `user_id` INT(11) NOT NULL, /* ユーザーID */ `status` TINYINT(4) NOT NULL, /* 出欠値 */ `comment` VARCHAR(255) NOT NULL, /* イベントや出欠についてのコメント */ `created` DATETIME NOT NULL, `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --PICTURE --TABLE:写真(イベントで撮影した写真を管理) ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_pictures; CREATE TABLE `clbs_pictures` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `pic` VARCHAR(255), /* 写真画像(ファイル名) */ `comment` VARCHAR(255) NOT NULL, /* コメント */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) ); /*--------------------------------------------------------- --FREETALK --フリートーク(トップページでダラダラ会話する用) ---------------------------------------------------------*/ DROP TABLE IF EXISTS clbs_freetalks; CREATE TABLE `clbs_freetalks` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, /* ユーザーID */ `comment` VARCHAR(255) NOT NULL, /* コメント */ `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL, PRIMARY KEY (`id`) );