Mon, Jun 30, 2008
前回作成したSQLでデータベースとテーブルを作成したので、ここでscaffoldを試してみます。
app/config/database.php(database.php.defaultをコピー)
var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'root',
'password' => 'xxxxxx',
'database' => 'clbs',
'prefix' => 'clbs_');
app/models/schedule.php
< ?php
class Schedule extends AppModel{
var $name = 'Schedule';
}
?>
app/controllers/schedules_controller.php
< ?php
class SchedulesController extends AppController{
var $name = 'Schedules';
var $scaffold;
}
?>
たったこれだけで、「http://localhost/schedules」にアクセスしてみるとSchedulesテーブルのデータ管理画面がscaffold機能で自動生成されていました。めちゃめちゃ簡単ですね!どんな管理画面が表示されるのかは、実際に試してご確認ください(^-^;)
Sat, Jun 28, 2008
DBテーブル作成のための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`)
);
Wed, Jun 25, 2008
アプリ名
何にも思いつかない。とりあえず、club + class で「clubss」としておきます。略名はclbsで。
概要
- 飲み会や休日遊びに行く際に、幹事や企画者がそのイベントの日程や内容を登録して、そのイベントに対してメンバーが参加・不参加を設定できる。
- SNSの簡易版のような感じにしたい。日記やコミュニティは無し。その代わりにTwitterみたいに一言コメントをダラダラ気軽に書き込めるようにしたい。
機能
ずらずらと思いつくままに書いてみました…。ソースやファイルを晒して誰かに見てもらえるように頑張ります。