CREATE TABLE tb_month_report_chapter_main( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `record_month` char(7) NOT NULL , `customer_id` int(11) NOT NULL, PRIMARY KEY(`id`), UNIQUE KEY `record_month` (`record_month`, `customer_id`) #建立了聯合惟一約束 當月份和用戶id有重複時會報錯 );
CREATE TABLE tb_month_report_chapter_main( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `record_month` char(7) NOT NULL , `customer_id` int(11) NOT NULL, PRIMARY KEY(`id`), UNIQUE KEY `record_month` (`record_month`, `customer_id`) ); CREATE TABLE tb_month_report_chapter_text( `id` INTEGER(11) AUTO_INCREMENT NOT NULL PRIMARY KEY, `main_id` INTEGER(11), `chapter` VARCHAR(10) NOT NULL, `text_type` VARCHAR(10) NOT NULL, `text_content` VARCHAR(255) DEFAULT NULL, FOREIGN KEY(`main_id`) REFERENCES tb_month_report_chapter_main(id) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE tb_month_report_chapter_img( `id` INTEGER(11) AUTO_INCREMENT NOT NULL PRIMARY KEY, `main_id` INTEGER(11), `chapter` VARCHAR(10) NOT NULL, `img_type` VARCHAR(10) NOT NULL, `img` LONGBLOB DEFAULT NULL, FOREIGN KEY(`main_id`) REFERENCES tb_month_report_chapter_main(id) ON DELETE CASCADE ON UPDATE CASCADE );
這個表的關係,經過 主表的惟一標識, 月份和用戶Id肯定惟一,而文字和圖片保存在另外兩個表。code