使用整数数据类型在数据库中表示无限制

时间:2008-11-06 02:51:10

标签: mysql types

我有一个表可以保存一些帐户限制,例如用户。对于大多数行,此值将为整数。但是,我还需要支持存储无限(无限)值作为值。这可能看起来很愚蠢但有一个共同的整数值代表无限(无限)吗?我想继续将值存储为整数。

5 个答案:

答案 0 :(得分:28)

  • 使用零
  • 使用-1
  • 使用null

我更喜欢null,除非字段不可为空,否则我更喜欢零,除非零是有效限制,然后我更喜欢-1,除非-1是有效值,在这种情况下你需要另一个字段(比如说,有点字段)表示'无限'。

答案 1 :(得分:5)

由于没有无数人,你实际上无法拥有无限数量的帐户。实际上,您实际上可以拥有的帐户数量有限(如果您选择将值存储在单个数据库列中),因为可数事物的任何有限存储机制都有限制。对@Tor Haugen,我建议最好的方法是使用系统施加的限制(无论你的语言提供的最大整数或长度)。这样您就不必担心比较的任何特殊情况。另外,我使用数据库约束来防止在字段中存储负值。一个64位整数肯定会有一个足够大的数字,几乎可以无限制地应用你的应用程序。

答案 2 :(得分:4)

好吧,如果您从.NET访问数据库,则整数类型具有常量成员MaxValue和MinValue。我们有时用它们来表示无限。当然,这些值在您的RDBMS中没有特殊含义......

答案 3 :(得分:3)

作为整数,无穷大将是困难的。一些选择:

1)-1,具有相应的程序逻辑,将其视为无限(假设负值实际上无效)。

2)一个额外的列,其中包含一个表示有限/无限的标记。

答案 4 :(得分:0)

我认为没有一个完美的解决方案。所以这是我的建议:

创建表示可以存储在数据库中的最大值的常量,并将它们视为“无限”。

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#integer-types