【发布时间】:2011-07-23 04:55:02
【问题描述】:
当您为了性能而进行非规范化时,使用特殊的命名约定是一种常见的做法吗?
例如,假设您有一个带有 date_of_birth 列的 customer 表。然后,您可能会添加一个age_range 列,因为有时动态计算该客户的年龄范围太昂贵了。但是,人们可能会看到这变得混乱,因为不清楚哪些值是权威的,哪些是派生的。因此,也许您想将该列命名为 denormalized_age_range 或其他名称。
对这些列使用特殊的命名约定是否常见?如果是这样,是否有针对此类事物的既定命名约定?
编辑:这是另一个更现实的例子,说明非规范化何时会给您带来性能提升。这是来自一个真实的案例。假设您正在编写一个应用程序来跟踪美国所有大学的大学课程。如果您选择该学位,您需要能够为每个学位展示您毕业时获得的学分。学位的学分计算实际上非常复杂,而且需要很长时间(每个学位超过一秒)。如果您有一份比较 100 个不同学位的报告,那么动态计算学分是不切实际的。当我遇到这个问题时,我在degree 表中添加了一个credit_count 列,并预先计算了每个学位的学分。这解决了性能问题。
【问题讨论】:
-
+1 我也是这么想的
标签: database naming-conventions