• 数据库设计-提升


    设计一个职位举报表

    第一次:

    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这种标识性字段应该放在最后面(创建时间等都在它前面)

  • 相关阅读:
    012_py之证书过期监测及域名使用的py列表的并集差集交集
    一些java的书籍
    java之内的工具分享,附带下载链接,方便以后自己寻找
    javascript的 == 与 === 的区别
    论httpclient上传带参数【commons-httpclient和apache httpclient区别】
    java操作小技巧,遇到过的会一直更新,方便查找
    常用jsp include用法,三种include的区别
    mybatis中的#和$的区别
    单例模式
    jQuery获取Select选择的Text和 Value(转)用时比较方便寻找
  • 原文地址:https://www.cnblogs.com/syjp/p/10855955.html
Copyright © 2020-2023  润新知