'mysql', * 'host' => 'localhost', * 'port' => '3306', * 'user' => 'user', * 'password' => '123456', * 'dbname' => 'chu-elearning', * 'prefix' => 'chu_' * )); * * 可參考以下範例: * * require_once __DIR__.'/config.php'; * require_once UELEARNING_LIB_ROOT.'Database/DBAdmin.php'; * use UElearning\Database; * * try { * $db = new Database\DBAdmin(); * } catch (Database\DatabaseNoSupportException $e) { * echo 'No Support in ', $e->getType(); * } catch (Exception $e) { * echo 'Caught other exception: ', $e->getMessage(); * } * * @author Yuan Chiu * @version 2.0.0 * @package UElearning * @subpackage Database */ class DBAdmin extends Database { /** * 建立所有所需的資料表 * * @since 2.0.0 */ public function createAllTable() { // 使用的資料庫系統為MySQL if($this->db_type == 'mysql') { // 所有要跑的SQL指令陣列 $execSql = array( "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."ABelong` ( `TID` int(10) unsigned NOT NULL, `AID` int(10) unsigned NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."AGroup` ( `GID` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `GName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `GMemo` tinytext COLLATE utf8_unicode_ci, PRIMARY KEY (`GID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Area` ( `AID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '區域編號', `AName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '區域名稱', `AMapID` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '區域地圖編號', `AIntroduction` tinytext COLLATE utf8_unicode_ci, PRIMARY KEY (`AID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."CGroup` ( `CID` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `CName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `CMemo` tinytext COLLATE utf8_unicode_ci, PRIMARY KEY (`CID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Edge` ( `Ti` int(11) NOT NULL, `Tj` int(11) NOT NULL, `MoveTime` int(4) NOT NULL COMMENT '移動時間(分鐘)', `Destance` int(11) NOT NULL COMMENT '距離(M)' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."LearnActivity` ( `LsID` int(10) NOT NULL, `ThID` int(10) NOT NULL COMMENT '主題編號', `CID` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '班級名稱', `StartTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '開始時間', `Delay` int(11) NOT NULL COMMENT '實際狀態延誤(分)', PRIMARY KEY (`LsID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Material` ( `MID` int(10) unsigned NOT NULL COMMENT '教材內部編號', `TID` int(10) unsigned NOT NULL COMMENT '標的內部編號', `MMode` int(1) NOT NULL DEFAULT '0' COMMENT '教材模式', `MUrl` varchar(1000) COLLATE utf8_unicode_ci NOT NULL COMMENT '教材檔案路徑', PRIMARY KEY (`MID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Recommand` ( `TID` int(3) NOT NULL COMMENT '標的內部編號', `UID` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '使用者帳號', `gradation` int(11) NOT NULL COMMENT '系統推薦標地順序' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Study` ( `SID` int(10) NOT NULL AUTO_INCREMENT, `TID` int(10) NOT NULL COMMENT '標的內部編號', `UID` int(30) NOT NULL COMMENT '使用者名稱', `LMode` int(11) NOT NULL COMMENT '學習導引模式', `MMode` int(11) NOT NULL COMMENT '教材模式', `In_TargetTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '進入標的時間', `Out_TargetTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '離開標的時間', PRIMARY KEY (`SID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."StudyQuestion` ( `UID` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `TID` int(10) NOT NULL, `QID` int(11) NOT NULL, `UAns` int(11) NOT NULL, `CAns` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Target` ( `TID` int(10) unsigned NOT NULL COMMENT '標的內部編號', `TNum` int(10) DEFAULT NULL COMMENT '標的地圖上的編號', `TName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '標的名稱', `TMapID` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '地圖圖檔名稱', `TLearnTime` int(4) unsigned NOT NULL COMMENT '預估此標的應該學習的時間', `PLj` int(11) unsigned NOT NULL COMMENT '學習標的的人數限制', `Mj` int(11) unsigned DEFAULT NULL COMMENT '目前人數', `S` int(11) unsigned DEFAULT NULL COMMENT '學習標的飽和率上限', `Fi` int(11) DEFAULT NULL COMMENT '學習標的滿額指標', PRIMARY KEY (`TID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."TBelong` ( `TID` int(10) NOT NULL, `ThID` int(10) NOT NULL, `Weights` int(3) NOT NULL COMMENT '當次學習主題的某一個學習標的之權重' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."Theme` ( `ThID` int(10) unsigned NOT NULL AUTO_INCREMENT, `ThName` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT '主題名稱', `ThLearnTotal` int(4) NOT NULL COMMENT '學習此主題要花的總時間(m)', `ThIntroduction` tinytext COLLATE utf8_unicode_ci COMMENT '介紹', PRIMARY KEY (`ThID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."User` ( `UID` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '使用者帳號', `UPassword` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT '密碼', `GID` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT '使用者群組', `CID` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '使用者班級', `UEnabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '帳號啟用狀態', `UBuild_Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '帳號建立時間', `LMode` enum('line-learn','harf-line-learn','non-line-learn') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '學習導引模式', `MMode` int(11) DEFAULT NULL COMMENT '教材模式', `UNickname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '暱稱', `UReal_Name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '真實姓名', `UEmail` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '使用者email', `UMemo` tinytext COLLATE utf8_unicode_ci COMMENT '備註', PRIMARY KEY (`UID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;", "CREATE TABLE IF NOT EXISTS `".$this->db_prefix."UserSession` ( `UsID` int(10) unsigned NOT NULL AUTO_INCREMENT, `UToken` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '此登入階段的token', `UID` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `UAgent` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '使用哪個裝置登入', `ULoginDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登入時間', `ULogoutDate` timestamp NULL DEFAULT NULL COMMENT '登出時間', PRIMARY KEY (`UsID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;" ); // 執行此SQL指令 foreach ($execSql as $value ){ $this->connDB->exec($value); }; } else { throw new Exception\DatabaseNoSupportException($this->db_type); } } }