我有一张桌子,我想在两列上添加唯一索引。这些列也被索引。所以我的问题是我是否可以删除仅用于一列的索引,或者是否必须使用所有三个索引:
add_index "subscriptions", ["user_id"]
add_index "subscriptions", ["content_id"]
add_index "subscriptions", ["user_id"], ["content_id"], :unique => true
Answers:
add_index :subscriptions, [:user_id, :content_id], unique: true
%w(user_id content_id)
红宝石中的@FrançoisBeausoleil 只会创建一个字符串数组,这对rails并不特殊。您可以使用相同的"user_id content_id".split
方法来创建字符串数组。我敢肯定,您知道这一点,是因为其他
%w(user_id content_id)
是一个字符串数组。与相同['user_id', 'content_id']
。用于符号的阵列的不同表示法是%i(user_id content_id)
,或者作为OP写[:user_id, :content_id]
used_id
和content_id
单独的索引分开是没有意义的。这可能也适用于其他数据库...与您期望的相反,它将对性能(尤其是插入/更新)产生负面影响。