gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中管理非自增主键?

转载 作者:行者123 更新时间:2023-12-05 00:42:37 24 4
gpt4 key购买 nike

我在很多情况下都希望在使用 Rails 时有一个非自动增量的主键。

示例:我在 A 和 B 之间有一对一的关系。B 描述了添加到 A 的一些特定特征,因此没有 A 就不可能存在。所以我们有:

A 有一个 B
B属于A

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

如果我用 execute 创建主键,它们就不会进入
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

关于ruby-on-rails - 如何在 Rails 中管理非自增主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com