在docs和SO上(虽然我再也找不到链接),但是不要忘记为连接表创建索引,这是非常有用的提示。
像这样一个不要忘记将索引添加到HATM表:
add_index:developers_projects,[:developer_id,:project_id]
在这里找到API DOC
但不应该像
那样add_index :developers_projects, [:developer_id, :project_id]
add_index :developers_projects, [:project_id]
至少在某些情况下作为提示,来自另一方?或者我是否会再次错过Rails并自动发生?
答案 0 :(得分:0)
多列索引就是你通常需要的,因为它们可以“双向”工作。事实上,在HABTM关系中,有三种方法可以达到两列索引。
在你的情况下......
希望这会有所帮助: - )
答案 1 :(得分:0)
在某种程度上,它可能取决于数据库和版本。
如果数据库允许仅索引扫描,那么如果要查找每个开发人员的所有项目和每个项目的所有开发人员,则创建索引:
add_index :developers_projects, [:developer_id, :project_id]
add_index :developers_projects, [:project_id ,:developer_id]
如果数据库必须始终触及该表(PostgreSQL的旧版本),那么:
add_index :developers_projects, :developer_id
add_index :developers_projects, :project_id
...虽然您可能正在升级到稍后支持仅索引访问的版本,但您仍然有理由以未来的方式创建第一个版本。