MYSQl 联合惟一约束 根据两个字段 惟一

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

相关文章
相关标签/搜索