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

sea*_*ant 17 mysql types

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

Ste*_*owe 31

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

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

  • 嗯。零和 -1 是整数集的成员。null(无数据)可能已经是一个有效值。重新定义众所周知的值以具有新的特殊含义是令人困惑的,而且通常是不明智的。 (2认同)
  • 除非另有充分理由,否则我更喜欢“额外字段”解决方案。“魔法值”解决方案可能会导致各种意想不到的问题。我并不是说这不常见,只是它有点定时炸弹的滴答作响。 (2认同)

tva*_*son 5

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