加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何管理Rails中的非自动增量主键?

发布时间:2020-12-17 02:58:13 所属栏目:百科 来源:网络整理
导读:我有很多情况,我希望在使用Rails时有一个非自动增量主键. 示例:我在A和B之间有一对一的关系.B描述了添加到A的一些特定功能,因此在没有A的情况下不能存在.所以我们有: A有一个B. B属于A. 自然的想法是将B.A_id作为主键.所以我在迁移中尝试了create_table b,
我有很多情况,我希望在使用Rails时有一个非自动增量主键.

示例:我在A和B之间有一对一的关系.B描述了添加到A的一些特定功能,因此在没有A的情况下不能存在.所以我们有:

A有一个B.
B属于A.

自然的想法是将B.A_id作为主键.所以我在迁移中尝试了create_table b,:id => false,在B的模型中尝试了set_primary_key:a_id,但它没有在数据库中创建实际的主键.我想要它们(以及外键),因为数据库不仅会被这个Rails应用程序使用.

如果我用执行创建主键,它们就不会进入
?schema.rb,这会伤害.现在我正在考虑一个解决方法:只要对该列有唯一约束,我就可以没有PK约束,所以我可以在迁移中使用Rails的add_index,这似乎更优雅.

有什么建议?

解决方法

A very similar question on StackOverflow suggests尝试类似:

create_table(:b,:id => false) do |t|
  t.integer :a_id,:options => 'PRIMARY KEY'
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读