0

我想根据我的数据库中的 4 列设置一个索引,以确保快速查找并确保在所有 4 列中没有两行具有相同的条目。从而确保基于 4 列的唯一性。我知道这可以在其他语言和框架中完成,但是可以在 Rails 中完成吗?

我已经看到以下命令在 Rails 中设置索引:

add_index "users", ["email"], :name => "index_users_on_email", :unique => true

但是,可以对超过 1 列进行类似的操作吗?

此外,如果这不能超过 1 列,那么人们如何处理基于 rails 中的多列的唯一性呢?

4

1 回答 1

3

是的,您可以在 Rails 中的多个列上创建索引。

add_index users, [email, col1, col2, col3], :name => "my_name", :unique => true 

应该管用。只要您指定名称,您就应该很好。

PostgreSQL(不确定 MySQL)对约束名称有字符限制,因此当add_index用于多个列时,请确保您提供自定义名称,或者您的列名称足够短以适应限制,否则自动生成 index_users_on_col1_and_col2_and_col3可能会为您搞砸。

于 2012-05-01T21:48:47.557 回答