|
-- =======================================================
-- 创建一张比较齐全的表
-- =======================================================
1 创建一张新闻表csf_news,主键id自增, 字段2 新闻标题 item, 新闻内容content(内容可能超过500W汉字), 新闻状态status
(-2无效状态、-1未编辑状态、1审核状态、2审核完成状态、3再修改状态、4重新审核状态)只允许录入括号里面允许的几个状态值,
录入人 insert_user, 录入时间insert_time,审核人check_user,审核时间check_time,修改人update_user,修改时间update_time
。
其中录入人、审核人、修改人全为外键 关联用户表use的id字段。
某个业务场景,经常根据录入人、审核人、修改人、新闻状态、录入时间(审核人查询的次数最多、录入人次之,修改人再次之)进行
查询。
要求:写出较合理的建表的sql语句。
CREATE TABLE `csf_news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` varchar(512) NOT NULL comment '标题',
`content` longtext comment '新闻内容',
`status` enum('-2','-1','1','2','3','4') comment '-2无效状态、-1未编辑状态、1审核状态、2审核完成状态、3再修改状态、
4重新审核状态',
`insert_user` int(11) NOT NULL comment ‘录入人’,
`insert_time` datetime NOT NULL comment ‘录入时间’,
`check_user` int(11) NOT NULL comment '审核人 ',
`check_time` datetime NOT NULL comment '审核时间',
`update_user` int(11) DEFAULT NOT NULL comment '修改人',
`update_time` datetime DEFAULT NOT NULL comment '修改时间',
PRIMARY KEY (`id`),
KEY `in_user` (`status`,`check_user`,`insert_user`,`update_user`),
KEY `fk_inUserId` (`insert_user`),
KEY `fk_chUserId` (`check_user`),
KEY `fk_upUserId` (`update_user`),
CONSTRAINT `fk_upUserId` FOREIGN KEY (`update_user`) REFERENCES `user` (`id`) ON UPDATE CASCADE,
CONSTRAINT `fk_chUserId` FOREIGN KEY (`check_user`) REFERENCES `user` (`id`) ON UPDATE CASCADE,
CONSTRAINT `fk_inUserId` FOREIGN KEY (`insert_user`) REFERENCES `user` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='新闻表' |
|