我只是在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
答案 0 :(得分:23)
数据库索引是一种提高速度的数据结构 表中的操作。可以使用一个或多个创建索引 列,为快速随机查找提供基础 有效排序访问记录。 - TutorialPoint
基本上用于加速查询的索引。
在示例中
add_index :relationships, :follower_id
add_index :relationships, :followed_id
为follower_id
和followed_id
列创建了索引,这将加快查询速度,以查找follower_id
OR followed_id
。它不会对您的列强制执行任何其他约束,例如 UNIQUE 。所以他们可以有相同的价值
这里
add_index :relationships, [:follower_id, :followed_id], unique: true
该过程与上述相同,约束条件follower_id
AND followed_id
应该是不同的。如果您尝试向两个列