我开发了一个Ruby on Rails 5应用程序并将其部署到生产环境中,运行rake db:migrate后我注意到我没有使用 foreign_key:true 而且索引:我的表之间的一般关系是真的。问题是:这是否会影响数据库性能,是否应该生成新的迁移只是为了向我的列添加索引和外键引用?提前谢谢。
答案 0 :(得分:0)
Active Record使用数据库表中列的命名约定,具体取决于这些列的用途。
外键 - 这些字段应按照模式命名 singularized_table_name_id(例如,item_id,order_id)。这些是 创建关联时Active Record将查找的字段 在你的模特之间。
主键 - 默认情况下,Active Record将使用整数列 将id命名为表的主键。使用Active Record时 迁移创建表,此列将自动进行 创建
您必须了解有关ActiveRecord
的更多信息,请查看其工作原理here
我建议您阅读belongs_to
和has_many
关系
答案 1 :(得分:0)
取决于您要做什么,如果您需要使用外键,则需要创建这些迁移,否则您将无法访问它们。
当谈到数据库性能时,它并不重要