У меня есть полиморфная таблица под названием "Голоса", где есть голоса от "Ответы и вопросы".
Голоса
user_id voteable_id voteable_type value
1 2 Answer 1
2 2 Answer 1
В этом случае ответ с id = 2 имеет два голоса.
Вопрос: Как индексировать эту таблицу?
Первый подход:
add_index :votes, [:voteable_id, :voteable_type]
Это не будет работать, потому что дублирующее значение ключа будет нарушать уникальное ограничение
Второй подход:
add_index :votes, :voteable_id,
add_index :votes, :voteable_type
Этот, я думаю, не будет иметь большой производительности из-за сложных запросов для id и типа в то же время.
Третий подход:
add_index :votes, [:user_id, :voteable_id, :voteable_type]
Этот последний хороший? Слишком много индексируются три столбца?
Спасибо