一个领域有两个目的

时间:2019-08-14 07:21:42

标签: database database-design

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

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

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

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

1 个答案:

答案 0 :(得分:0)

TL; DR 从技术上讲,您可以-但我们不建议这样做。您可以读入Database normalisations(最多使用3个)。


您使工作变得更加复杂。万一此列成为查询的一个因素,则您必须在每一行中实际代表它的值。

从技术上讲,这没有多大意义-假设您得到的分数带有百分比,并且基本上是一年的int或date类型。您可以使用符号位来进行区别,但是仍然是一种混乱的处理方式。

这样做的好处是,您可能具有较少的空值,从而减少了存储消耗。话又说回来,这不是很多中等大小的表,它甚至可以被接受,因为它使事情变得更容易处理。但最终,它实际上取决于您要如何处理它。