我需要一些像这样的表:
uid:integer
pid:integer
predesposition:integer
primary_key(uid,pid)
foreign_key(uid, user(id))
foreign_key(pid, user(id))
所以,有两个问题: 1.如何在迁移中声明多个FK? 2.如何在迁移中声明属于同一个表的两个(或更多)列?
示例:
create_table :encounters, :id => false do |t|
t.belongs_to :user, :polymorphic => true
t.belongs_to :user, :polymorphic => true
t.integer :predisposition
end
答案 0 :(得分:1)
如果要引用另一个表,请遵循外键的概念。并且想建议使用全表名而不是uid和pid。
create_table :table_name, {:id => false} do |t|
t.integer :user_id
t.integer :pid #suppose its procedures table
t.integer :predesposition
t.references :user
t.references :procedure
t.timestamps
end
execute "ALTER TABLE table_name ADD PRIMARY KEY (user_id,pid);"
希望有所帮助。