0

我需要一些像这样的表:

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
4

1 回答 1

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);"

希望有所帮助。

于 2012-05-09T13:31:07.163 回答