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. 图示:

Assignment 2: Database Design_第1张图片
学科字典.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. 要求保留原信息:对于删除部分学科,只须添加结束日期即表示已经过期不再访问,但原始信息仍保留在系统中。

你可能感兴趣的:(Assignment 2: Database Design)