【发布时间】:2012-06-16 18:25:06
【问题描述】:
假设您有一个锚模型并将单个名称属性替换为三个属性:FirstName、MiddleName 和 LastName。原始名称属性会发生什么变化?我可以想象其他感觉具有破坏性的模式更改,那么 Anchor Modeling 声称以非破坏性方式发展模式是什么意思?
【问题讨论】:
标签: database-design database-schema anchor-modeling
假设您有一个锚模型并将单个名称属性替换为三个属性:FirstName、MiddleName 和 LastName。原始名称属性会发生什么变化?我可以想象其他感觉具有破坏性的模式更改,那么 Anchor Modeling 声称以非破坏性方式发展模式是什么意思?
【问题讨论】:
标签: database-design database-schema anchor-modeling
它可能是指它与正常运行时间的交互。如果您 ALTER 一个足够大的基表,您将暂停对它的请求,直到它完成。使用锚建模,没有这样的场景,因为新列是不与基表交互的新实体(就阻止对基表的 I/O 操作而言,除了删除,这是没有实际意义的,因为新列被实现为空表)。
因此,假设您有一个带有 FullName 属性的 Person 基表。然后你已经非破坏性地进化到包括 FirstName、MiddleName 和 LastName。 FullName 表可能会继续有用,直到所有代码路径都采用 First、Middle 和 Last。此时它变成了一种退化的器官,继续进行进化类比。
审核(删除)此表也是非破坏性的。作为一个单独的实体,其生命周期的销毁不会中断任何基表或属性表的操作。
所以这可能就是锚模型作者所说的破坏性的意思。
破坏正常运行时间。
【讨论】: