数据库设计-提升

设计一个职位举报表

第一次:

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、负责人说我取名总喜欢用偏僻字段,这我也有点无奈

 

经验:

扫描二维码关注公众号,回复: 6220382 查看本文章

1、无论如何,type字段一定要设计,这利于可扩展性

2、字见其意,createid要改成reportid,memberid不好更换名字,所以注释要标明清楚

3、如description文本域字段,虽然UI图上面限制输入200字,我本来数据库设计为长度256,后来改了,所以应该设计为长度512

4、如果要合并为一张表,positionid这种标识性字段应该放在最后面(创建时间等都在它前面)

猜你喜欢

转载自www.cnblogs.com/syjp/p/10855955.html