我只是对Ruby on Rails Tutorial.org中的这段代码感到有些困惑。它的 add_index 部分到底做了什么?为什么有3行呢?
class CreateRelationships < ActiveRecord::Migration
def change
create_table :relationships do |t|
t.integer :follower_id
t.integer :followed_id
t.timestamps
end
add_index :relationships, :follower_id
add_index :relationships, :followed_id
add_index :relationships, [:follower_id, :followed_id], unique: true
end
end
最佳答案
基本上使用索引来加快查询速度。
在这个例子中
add_index :relationships, :follower_id
add_index :relationships, :followed_id
为
follower_id
和followed_id
列创建了索引,这将加快查询follower_id
或 followed_id
的查询。它不会对您的列施加任何其他约束,例如 UNIQUE 。因此它们可以具有相同的值这里
add_index :relationships, [:follower_id, :followed_id], unique: true
该过程与上述过程相同,但有一个约束条件,即
follower_id
和 followed_id
组合应不同。如果您尝试在多行中为这些列重复相同的组合值,则会引发错误。关于ruby-on-rails - add_index到数据模型-Ruby on Rails教程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19899424/