第四章:编码与演化 唯变所适 —— 以弗所的赫拉克利特,为柏拉图所引(公元前 360 年) [TOC] 应用程序不可避免地随时间而变化。新产品的推出,对需求的深入理解,或者商业环境的变化,总会伴随着 功能(feature) 的增增改改。第一章 介绍了 可演化性(evolvability) 的概念:应该尽力构建能灵活适应变化的系统(请参阅 “可演化性:拥抱变化”)。 在大多数情况下,修改应用程序的功能也意味着需要更改其存储的数据:可能需要使用新的字段或记录类型,或者以新方式展示现有数据。 我们在 第二章 讨论的数据模型有不同的方法来应对这种变化。关系数据库通常假定数据库中的所有数据都遵循一个模式:尽管可以更改该模式(通过模式迁移,即 语句),但是在任何时间点都有且仅有一个正确的模式。