22

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

4

5 回答 5

35
  • 使用零
  • 使用 -1
  • 使用空

我更喜欢 null,除非该字段不可为空,然后我更喜欢零,除非零是有效限制,然后我更喜欢 -1,除非 -1 是有效值,在这种情况下您需要另一个字段(例如,位字段) 表示“无限”。

于 2008-11-06T02:53:33.490 回答
5

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

于 2009-01-11T17:40:57.170 回答
4

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

于 2008-11-06T02:54:55.377 回答
3

作为一个整数,无穷大将是困难的。几个选项:

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

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

于 2008-11-06T02:55:47.217 回答
0

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

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

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

于 2012-08-26T23:59:50.467 回答