以下是犹太教徒吗?
schema.rb
users
id:int (autoincr.)
uid:string <----------------
...
fb_friends
id:int (autoincr.)
uid:int <-------------------
friend_uid:int
...
user.rb
has_many :fb_friends, :primary_key => "uid", :foreign_key => "uid"
请注意,将“user”及其“fb_friends”绑定在一起的键具有不同的数据类型(string和int)。在一个理想的世界里,我可能不会这样做,但鉴于目前的系统架构,这似乎是最有效的解决方案。
但如果没有snafoos,这样做是否可行?
答案 0 :(得分:2)
这取决于您使用的数据库引擎,例如,对于mysql =&gt;
国外的相应栏目 密钥和引用的密钥必须具有 内部类似的内部数据类型 InnoDB使它们可以进行比较 没有类型转换。尺寸 并且整数类型的符号必须是 相同。字符串类型的长度需要 不一样。对于非二元的 (字符)字符串列, 字符集和校对必须 同样的。
更多信息here,无论如何,我不会说比较不同类型的字段是一种很好的做法:(。
希望它可以帮到你!
答案 1 :(得分:1)
不确定它是否有效,但如果您可以选择更改它,我不会推荐它。在Rails迁移中更改列类型非常容易:
change_column :users, :uuid, :integer