zoukankan      html  css  js  c++  java
  • 数据库设计-提升

    设计一个职位举报表

    第一次:

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

  • 相关阅读:
    一张图片入门Python
    4.1. 如何在Windows环境下开发Python
    你必须知道的EF知识和经验
    XUnit的使用
    如何使用NUnit
    Entity Framework 不支持DefaultValue
    Have You Ever Wondered About the Difference Between NOT NULL and DEFAULT?
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Entity Framework 与多线程
    sqlite中的自增主键
  • 原文地址:https://www.cnblogs.com/syjp/p/10855955.html
Copyright © 2011-2022 走看看