假设您有一个 anchor 模型,并将单个名称属性替换为三个属性:FirstName、MiddleName 和 LastName。原始名称属性会发生什么情况?我可以想象其他感觉具有破坏性的模式更改,那么 Anchor Modeling 声称以非破坏性方式发展模式意味着什么?
最佳答案
破坏性操作影响正常运行时间
它可能指的是它与正常运行时间的交互。如果您更改了足够大小的基表,您将暂停对其的请求,直到它完成。使用 anchor 建模,就不存在这种情况,因为新列是不与基表交互的新实体(就阻止对基表的 I/O 操作而言,除了删除之外,这是没有意义的,因为新列被实现为空表)。
因此,假设您有一个带有 FullName 属性的 Person 基表。然后,您会以非破坏性方式演变为包含 FirstName、MiddleName 和 LastName。 FullName 表可能会继续有用,直到所有代码路径都采用 First、Middle 和 Last。此时它变成了一种退化器官,继续进化类比。
审核(删除)此表也是非破坏性的。作为一个单独的实体,其生命周期的破坏不会中断任何基表或属性表的操作。
这可能就是 anchor 模型作者所说的破坏性的意思。
破坏正常运行时间。
关于database-design - 锚定建模中的非破坏性模式演化是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065982/