一个字段用于两个目的



>假设一个表有一个名为 CalcType 的字段;

如果计算类型为 YEAR,则必须存储年份值。

如果计算类型为 PERCENT,则必须存储百分比值。

(在数据库设计中)将一个字段用于两个目的(两种不同的性质)作为计算值是否正确?或者每种计算类型应该有一个字段?

TL;博士 从技术上讲,您可以 - 但强烈建议不要这样做。您可以读取数据库规范化(通常最多使用 3)。


你让事情变得更加复杂。如果此列成为查询的一个因素,则必须区分它实际表示的值的每一行。

从技术上讲,这没有多大意义 - 假设您得到了带有百分比的分数,并且基本上是一年的整数或日期类型。您可以使用符号位来有所不同,但仍然是一种混乱的做事方式。

优点是,您可能具有较少的空值,从而减少存储消耗。话又说回来,这并不算什么中规中矩大小的桌子 - 甚至经常被接受,因为它使事情更容易处理。但最终,这真的取决于你试图用它做什么。

最新更新