一尘不染

健全性检查:浮点数是主键吗?

sql

我正在使用旧的sql server
2000数据库,将其中的某些信息与我正在构建的新应用程序混合在一起。我注意到一些表中的某些主键是浮点数,而不是任何类型的整数。它们不是外键,并且都是唯一的。我想不出任何理由要有人浮动其唯一的主键ID,但无论如何我都不是SQL专家。所以我想我要问的是,设计这个相当广泛的数据库的人是否知道我不了解的东西?


阅读 124

收藏
2021-05-16

共1个答案

一尘不染

我目前正在使用一个相当大的会计软件包,其中350多个表的每个都有一个主键FLOAT(53)。所有实际值都是整数,系统会严格检查它们的确是真的(有特殊的函数可以完成所有递增操作)。

我确实对这种设计感到疑惑,但我可以理解为什么选择它并给予一些赞誉。一方面,该系统足够大,可以在某些表中包含数十亿条记录。另一方面,这些主键必须易于从外部应用程序(如Excel或VB6)读取,在这种情况下,您实际上并不想使其成为BIGINT。

因此,浮点数很好。

2021-05-16