【发布时间】:2011-02-10 11:31:43
【问题描述】:
当您的值仅取决于一个或多个其他字段 +/- 常量(例如零售价和折扣价)时,最好也存储这些值或在检索数据时“即时”计算它们?
【问题讨论】:
当您的值仅取决于一个或多个其他字段 +/- 常量(例如零售价和折扣价)时,最好也存储这些值或在检索数据时“即时”计算它们?
【问题讨论】:
默认情况下不存储冗余信息:third normal form 通常是一个明智的初始目标。当出现“足够好”的原因时会引入冗余,例如当您必须计算派生值并且计算量很大时会受到“足够大”的性能影响。
显然,“足够好”和“足够大”是限定词,仅表示特定上下文中的某些内容。就其价值而言,零售/折扣价格计算似乎太便宜且太简单,以至于在大多数(显然不是全部)情况下都需要引入冗余列。
【讨论】:
我同意 Tomislav 的观点 - 尽量避免冗余,因为最终可能会导致多个表上的数据相互不一致。它使更新更加痛苦。
但也有一些与数据库性能无关的例外情况值得考虑。
【讨论】: