【问题标题】:Rails Migrations: Foreign key and indexing column fieldsRails 迁移:外键和索引列字段
【发布时间】:2017-07-18 17:44:44
【问题描述】:
我开发了一个 Ruby on Rails 5 应用程序并将其部署到生产环境,在运行 rake db:migrate 之后,我注意到我没有使用 foreign_key: true 和 index:对我的表格之间的一般关系来说是正确的。问题是:这会影响数据库性能吗?我是否应该生成新的迁移只是为了向我的列添加索引和外键引用?提前致谢。
【问题讨论】:
标签:
ruby-on-rails
database
model
migration
【解决方案1】:
From Ruby on Rails guide:
2.2 架构约定
Active Record 对数据库表中的列使用命名约定,具体取决于这些列的用途。
外键 - 这些字段应该按照模式命名
奇异表名_id(例如,item_id、order_id)。这些是
创建关联时 Active Record 将查找的字段
在你的模型之间。
主键 - 默认情况下,Active Record 将使用整数列
命名为 id 作为表的主键。使用活动记录时
Migrations 来创建你的表,这个列会自动
已创建。
你必须知道更多关于ActiveRecord的信息看这里here是如何工作的
我建议您阅读有关belongs_to 和has_many 的关系
【解决方案2】:
取决于您要做什么,如果您有需要外键的关系,则需要创建这些迁移,否则您将无法访问它们。
当涉及到数据库性能时,这并不重要