【发布时间】:2015-04-10 18:55:04
【问题描述】:
如果我想在数据库级别使表列唯一,这是否需要该列也成为索引?
我有一个名为 username 的列,我希望它是唯一的,但它不需要是索引(登录是基于电子邮件地址完成的,这已经是一个索引)。
所以在模型级别我添加了:
validates :username, presence: true,
length: { maximum: 15 },
uniqueness: { case_sensitive: false }
但是我应该在迁移文件中做什么? 我知道我可以添加到迁移文件中:
add_index :users, :username, unique: true
但这会使用户名也成为一个索引,我并不真正需要它(我认为只会让应用程序变慢)。
我正在使用 SQLite 进行开发(遵循 Hartl 的教程,但针对我自己的应用程序调整了说明)。 可能要使其唯一需要它成为索引,但我想确定一下。我希望这是因为在 http://api.rubyonrails.org/classes/ActiveRecord/Migration.html 'unique' 上只有 add_index 方法存在。
【问题讨论】:
标签: ruby-on-rails