《数据库重构》阅读笔记4
六.结构的重构
删除列:
用Alter Table set unused 隐藏列
任何情况下select * 都不是个好方法
删除列不忘备份,创建临时表,包含原表的主键和删除的列
删除表:
将表改名,但注意有些数据库会自动更新对改名表的外键引用,SO手动删除外键
不忘备份表create table ... as select * from ...
引入计算列:
两种方法,基于数据源的触发器或者引入定期执行,依照实时性要求选择做法
统一键策略:
若原来的键在其他表中做外键工作量将巨大
合并表:
注意同步新旧表的时候,不要两个原表都使用触发器更新新表,否则将造成触发器死锁
分支知识:
视图常被用于报表,实现对数值的安全访问控制
基于视图的安全策略通常是最小公分母