主键的选择:
尽量考虑使用代理键作为主键,使用代理键的好处如下:
- 防止业务更改导致主键的更改
- 方便将数据由多个数据源合并到单个数据源
- 非代理件可能是多列,或者过长,从而导致聚集索引建过长,因此造成性能的问题.
- 代理键不会参与数据仓库的计算,比如说聚合函数
对范式做一个小小的总结,第一范式是必须遵循的,即使在数据仓库也是要遵循的,在设计数据库的时候要把范式作为一个参考,但也不要教条。
第一范式意味着将数据分解到最低层级,那数据分解到第一层级的标准分为以下3条:
- 列值符合原子性
- 没有重复列
- 每一行代表一个值
- 列值按照业务类型不应该可以再分。