DBテーブル構成を考えつつMYSQLを書いてみた(CakePHP修行 #3)

DBテーブル作成のためのCREATE TABLE文をとりあえず作ってみたので、晒してみます。そのうちER図作成ツールを使ってきれいにまとめたいです。テーブル構造はこんな感じです。

(※追記: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`)
);