SQL反模式(三)

欢迎参考 SQL反模式(前言)的数据库设计

此文章只是给自己做一个小抄,如有冒犯,还忘见谅


1. 多态关联

背景

SQL反模式(三)


识别反模式

SQL反模式(三)


目标: 引用多个父表


反模式: 使用双用途外键

定义多态关联

SQL反模式(三)
SQL反模式(三)


解决方案

1.创建交叉表

SQL反模式(三)
SQL反模式(三)

2.设计交通灯

SQL反模式(三)

3.双向查找

SQL反模式(三)

4.合并跑道

SQL反模式(三)
SQL反模式(三)

5.创建公用的超级表

SQL反模式(三)
SQL反模式(三)


2. 多列属性


背景

SQL反模式(三)


识别反模式

SQL反模式(三)


解决方案: 创建从属表

SQL反模式(三)


3. 元数据分裂


目标: 支持可扩展性

优化数据库的结构来提升查询的性能以及支持表的平滑扩展


识别反模式

SQL反模式(三)
SQL反模式(三)


解决方案: 分区及标准化

1. 使用水平分区

SQL反模式(三)

2. 使用垂直分区

SQL反模式(三)
SQL反模式(三)
SQL反模式(三)

3. 解决元数据分裂

SQL反模式(三)