「Votes」と呼ばれるポリモーフィックテーブルがあり、AnswersとQuestionsからの投票があります。
投票
user_id voteable_id voteable_type value
1 2 Answer 1
2 2 Answer 1
この場合、id=2の回答には2票があります。
問題は、このテーブルにインデックスを付ける方法です。
最初のアプローチ:
add_index :votes, [:voteable_id, :voteable_type]
重複するキー値は一意の制約に違反するため、これは機能しません
2番目のアプローチ:
add_index :votes, :voteable_id,
add_index :votes, :voteable_type
これは、idとtypeの複合クエリが同時に発生するため、パフォーマンスはそれほど高くないと思います。
3番目のアプローチ:
add_index :votes, [:user_id, :voteable_id, :voteable_type]
これは最後のものは良いものですか?3つの列のインデックスが多すぎませんか?
ありがとう