【问题标题】:Ruby On Rails custom IDRuby On Rails 自定义 ID
【发布时间】:2009-06-09 11:12:59
【问题描述】:

您好,我想为表设置自定义 ID,而不是使用默认的 auto_increment。那可能吗?我已经转向 :id => false ,后来我创建了一个 t.column :id, :bigint 但是当我创建新记录时,id 设置为 NULL

有没有办法绕过这种行为。 我可以将我的主键设置为字段 uid(它实际上是 facebook id),但通常它会中断,因为关系通常会查找 id 字段

【问题讨论】:

  • 对不起什么?你把填值的东西关掉,然后想绕过它不填数字?请稍微扩展您的问题。

标签: ruby-on-rails


【解决方案1】:

几乎可以肯定,使用 Rails 的代理自动增量 ID 作为主 ID 会更容易。

拥有第二个唯一列 facebook_id 并根据该字段执行所有搜索是没有问题的,但是出于您提到的兼容性原因(即插件作者做出他们不应该做出的假设),我会尽可能多地坚持使用 Rails 默认值明智的。与主键和唯一键相关的性能问题很少

【讨论】:

【解决方案2】:

我不知道问题出在哪里。当然,当您为 id 列禁用 auto_increment 并且不手动插入 id 值时,id 为 NULL。

顺便说一句:您可以定义关系的外键和主键。使用 facebook_id 作为主键是没有问题的。

【讨论】:

  • 我手动插入 User.create(:id=>9459405) 但没关系我会坚持 Rails 自动增量默认值,因为我过去遇到了一些问题
猜你喜欢
  • 2014-07-27
  • 2012-04-03
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多