我有 2 个模型 -Question
并且Tag
- 它们之间有一个 HABTM,它们共享一个连接表questions_tags
。
大饱眼福这个坏小子:
1.9.3p392 :011 > Question.count
(852.1ms) SELECT COUNT(*) FROM "questions"
=> 417
1.9.3p392 :012 > Tag.count
(197.8ms) SELECT COUNT(*) FROM "tags"
=> 601
1.9.3p392 :013 > Question.connection.execute("select count(*) from questions_tags").first["count"].to_i
(648978.7ms) select count(*) from questions_tags
=> 39919778
我假设questions_tags
连接表包含一堆重复的记录——否则,我不知道它为什么会这么大。
如何清理该联接表以使其仅包含uniq
内容?或者我什至如何检查那里是否有重复的记录?
编辑 1
我正在使用 PostgreSQL,这是 join_table 的架构questions_tags
create_table "questions_tags", :id => false, :force => true do |t|
t.integer "question_id"
t.integer "tag_id"
end
add_index "questions_tags", ["question_id"], :name => "index_questions_tags_on_question_id"
add_index "questions_tags", ["tag_id"], :name => "index_questions_tags_on_tag_id"