【问题标题】:Rails - how to store large numbers like 100000076685963Rails - 如何存储大量数字,如 100000076685963
【发布时间】:2011-05-07 05:23:32
【问题描述】:

我需要存储大量数字,例如:100000076685963

对于整数的 db 字段类型来说,这太大了。在我的数据库迁移中,我使用:

  t.integer :fb_uid

对于这样的大数字,我应该使用什么字段类型?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 postgresql


    【解决方案1】:

    您可以使用精度较高的定点数据类型,例如十进制。根据您给出的数字,精度为 15 即可,但您应该准确计算出您期望的范围。

    t.decimal :fb_fluid, :precision => 15
    

    【讨论】:

    • 它是用来存储 facebook uID 的,所以它可以达到 10 亿
    【解决方案2】:

    试试浮动

    t.float :fb_uid
    

    这似乎与 Facebook(可能是 facebooker)有关,假设这些数字不会用作算术运算,您可能只使用字符串

    t.string :fb_uid
    

    【讨论】:

    • 浮点字段的精度有限,并且是“有损”的;你出来的数字可能不是你输入的数字。
    【解决方案3】:

    您需要在该列中设置limit 字段以获取Postgresql 的bigint 精度:

    t.integer :fb_uid, limit: 8
    

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2013-08-06
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多