1、数据库重构分成6类:

  2、数据库味道

  与“代码味道”概念相似,代码味道是代码中出现常见问题,表明需要进行重构。

  数据库味道表明数据库需要重构。这些味道包括:

  (1)多用途的列

  如一个列被用于多种用途,可能存在额外的代码来确保源数据以“正确的方式”使用,这些代码常常会检查一个列或更多其它列的值。

  比如:

  某列用于存储某人的生日,如果此人是顾客的话。假如此人是公司雇员,此列则用于存储入厂日期。

  (2)多用途的表

  如一个表被用于存放几种类型的实体,可能存在设计缺陷。

  例如:

  某个表Customer同时存放了人和公司的信息。

  (3)重复的数据

  重复的数据对操作型数据库来说是一个严重的问题,因为如数据存放在几个地方,不一致的机会增加了。

  (4)列太多的表

  当一个表包含太多的列,则说明这个表缺乏内聚。

  比如:

  Customer表包含了一些列,存放了3种不同的地址(发货地址、账单地址、公司地址)或几个电话号码(家庭电话、工作电话、手机号等),你可能需要将这种结构进行标准化处理,加入Address和PhoneNumber表。

  (5)“智能”列

  “智能”列是这样一种列,其中数据的不同位置代表不同的概念。

  例如:

  客户ID的前4位数字代表客户的开户行,则客户ID是一个“智能”列。因为你会解析它以取得更细粒度的信息,如开户行ID。