2012-05-01 49 views
0

我想設置一個基於我的數據庫中的4列索引,以確保快速查找,並確保沒有兩行在所有4列中具有相同的條目。從而確保基於4列的唯一性。我知道這可以在其他語言和框架中完成,但是可以在rails中完成嗎?我可以有4列索引,並將其設置爲Rails應用程序postgresql數據庫中唯一?

我看到了下面的命令來設置軌道指數:

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

然而,可以類似地超過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可能會爲你搞砸。

相關問題