表的设计和主键选择

主键的选择:

尽量考虑使用代理键作为主键,使用代理键的好处如下:

  • 防止业务更改导致主键的更改
  • 方便将数据由多个数据源合并到单个数据源
  • 非代理件可能是多列,或者过长,从而导致聚集索引建过长,因此造成性能的问题.
  • 代理键不会参与数据仓库的计算,比如说聚合函数

对范式做一个小小的总结,第一范式是必须遵循的,即使在数据仓库也是要遵循的,在设计数据库的时候要把范式作为一个参考,但也不要教条。

 第一范式意味着将数据分解到最低层级,那数据分解到第一层级的标准分为以下3条:

  • 列值符合原子性
  • 没有重复列
  • 每一行代表一个值
  •  列值按照业务类型不应该可以再分。
原文地址:https://www.cnblogs.com/haifeisi/p/3162406.html