Assignment 2: Database Design

多级代码数据字典表设计

1. 要求:

  • 编码长度改变:如一级学科变成3位
  • 编码方式改变:增加4级学科、将门类与一级学科合并
  • 代码有效期改变:如某个二级学科从2010年10月1日开始不在使用
  • 代码被覆盖或替换
  • 要求保留原信息

2. 设计表如下:

  1. 学科门类表
字段名 数据类型 允许空值 主/外键 描述
id varchar(20) not null PK 学科门类代号
name varchar(50) not null 学科门类名称
startDate date not null 该学科生效时间
endDate date 该学科失效时间
  1. 各级学科表
字段名 数据类型 允许空值 主/外键 描述
id varchar(20) not null PK 学科门类代号
name varchar(50) not null 学科门类名称
level int not null 学科层次:1、2、3
fatherID varchar(20) not null FK 上级学科表
startDate date not null 该学科生效时间
endDate date 该学科失效时间

3. 图示:

学科字典.png

4. 分析

  1. 编码长度改变:如一级学科变成3位,各级学科的id均为varchar(20),满足长度改变要求,另外在改变该学科的编码长度时,应该递归的改变所有子学科的编码。即如08变为108,那么0811、0812、0813均要变为10811、10812、10813
  2. 编码方式改变:如增加4级学科、将门类与一级学科合并,对于增加学科只须增加对应层次的学科表即可,即可创建一个level为4的学科。
  3. 代码有效期改变:如某个二级学科从2010年10月1日开始不在使用,只须在endDate添加结束日期即可。
  4. 代码被覆盖或替换:类似与1中长度改变,递归改变学科及其子学科的id。
  5. 要求保留原信息:对于删除部分学科,只须添加结束日期即表示已经过期不再访问,但原始信息仍保留在系统中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,850评论 6 13
  • 本文将演示一下如何在IntelliJ IDEA中建立一个gradle管理的Spring MVC工程,主要针对刚入门...
    Jiatian阅读 3,633评论 0 2
  • 早上8点起床,这几天来感觉到好幸福。纵使很累,有很多的事情困扰着我!但是还是感觉到好充实好幸福。最近感悟到一个人的...
    31c47a10aded阅读 1,430评论 1 3
  • 盼星星盼月亮在长时间的挣扎煎熬中盼来了一月的工资,扣除提前支付的水电车险房贷,计划着迫在眉睫的人情过往,掂量起仅够...
    随意阳光阅读 1,404评论 8 5