che*_*ell 2 postgresql types facebook ruby-on-rails
我有一个用于Rails应用程序的PostgreSQL数据库.
我想存储Facebook用户ID所以我认为我可以使用整数,但它不够大所以我选择了浮点数.
但是现在Rails将.0添加到我的用户ID的末尾
我可以使用什么数据类型,因此对于非常长的Facebook用户ID不会发生这种情况 example: 100002496803785
您可以:limit => 8在整数列上使用来获取bigint.例如:
class Pancakes < ActiveRecord::Migration
def change
create_table :pancakes do |t|
t.integer :c, :limit => 8
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后,来自psql:
=> \d pancakes
Table "public.pancakes"
Column | Type | Modifiers
--------+---------+-------------------------------------------------------
id | integer | not null default nextval('pancakes_id_seq'::regclass)
c | bigint | not null
Indexes:
"pancakes_pkey" PRIMARY KEY, btree (id)
Run Code Online (Sandbox Code Playgroud)
这是你的八字节bigint列.
您还可以使用字符串作为Facebook ID.你没有对ID进行任何算术运算,所以它们实际上只是看起来像大整数的不透明的包,字符串会排序和比较,所以它们可能是最好的选择.由于字符串的大小超过整数,会有一些存储和访问开销,但它可能不足以产生任何明显的差异.
永远不要double用于需要精确的东西..0在这种情况下,你可能会很好(除了尾随),因为你有52位的尾数,这意味着它double会像52位整数一样,直到你的值足够大以至于需要指数.即便如此,使用double这个将是一个糟糕的想法和滥用类型系统.
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |