设计一个职位举报表
第一次:
DROP TABLE IF EXISTS `hr_position_complaint`;
CREATE TABLE `hr_position_complaint` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`positionid` INT(11) NOT NULL COMMENT '被举报职位id',
`memberid` INT(11) NOT NULL COMMENT '用户id',
`positionname` VARCHAR(50) NOT NULL COMMENT '职位名称',
`reason` VARCHAR(50) NOT NULL COMMENT '举报原因',
`detail` VARCHAR(256) NOT NULL COMMENT '举报描述',
`evidenceimg` VARCHAR(256) DEFAULT NULL COMMENT '证据截图',
`createtime` TIMESTAMP NULL COMMENT '创建时间',
`createid` INT(11) DEFAULT NULL COMMENT '创建人',
`updatetime` TIMESTAMP NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='职位举报表';
最终版:
DROP TABLE IF EXISTS `hr_position_report`;
CREATE TABLE `hr_position_report` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`positionid` INT(11) NOT NULL COMMENT '被举报职位id',
`memberid` INT(11) NOT NULL COMMENT '被举报人id',
`reason` VARCHAR(50) NOT NULL COMMENT '举报原因',
`description` VARCHAR(512) NOT NULL COMMENT '举报描述',
`evidenceimg` VARCHAR(1024) DEFAULT NULL COMMENT '证据截图',
`type` INT(4) NOT NULL DEFAULT '0' COMMENT '0=职位举报',
`createtime` TIMESTAMP NULL COMMENT '创建时间',
`reportid` INT(11) DEFAULT NULL COMMENT '举报人',
`updatetime` TIMESTAMP NULL COMMENT '修改时间',
`status` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '审核状态 0=待审核 1=审核中 2=已审核',
`auditorid` INT(11) DEFAULT NULL COMMENT '审核人',
`audittime` DATETIME DEFAULT NULL COMMENT '审核时间',
`opinion` VARCHAR(256) DEFAULT NULL COMMENT '审核意见',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='职位举报表';
问题:
1、我遗漏了后台管理部分,没有设计审核字段
2、我应该事先与其他开发人员商量是否会有其他举报,多种举报能否合并成一张表(虽说按我的理解,这种举报可能涉及到工作流问题,应该要分开,数据也明显一些)
3、负责人说我取名总喜欢用偏僻字段,这我也有点无奈
经验:
1、无论如何,type字段一定要设计,这利于可扩展性
2、字见其意,createid要改成reportid,memberid不好更换名字,所以注释要标明清楚
3、如description文本域字段,虽然UI图上面限制输入200字,我本来数据库设计为长度256,后来改了,所以应该设计为长度512
4、如果要合并为一张表,positionid这种标识性字段应该放在最后面(创建时间等都在它前面)