Какие индексы следует добавить для полиморфной ассоциации в Ruby on Rails? - PullRequest
4 голосов
/ 20 ноября 2008

У меня есть полиморфная ассоциация в модели Ruby on Rails. В миграции у меня есть:

create_table "offer_defs" do |t|
  t.integer "product_def_id"
  t.string  "product_def_type"
  ...
end

Я хотел бы добавить индекс для этой ассоциации. Я колеблюсь между следующими вариантами:

add_index :offer_defs, [:product_def_id, :product_def_type]

или

add_index :offer_defs, :product_def_id
add_index :offer_defs, :product_def_type

или может и то и другое?

Какие плюсы и минусы?

1 Ответ

1 голос
/ 20 ноября 2008

Я бы пошел с последним вариантом. Это поможет, если вам нужно посчитать полиморфные вложения определенного типа, что вы могли бы. Если бы вы хотели многостолбцовый индекс, я бы по крайней мере поменял местами порядок двух столбцов (сначала указав тип), так как это поле типа гораздо более вероятно будет параметром запроса в этой таблице, чем полем id.

примечание: я предполагаю, что вы используете mysql здесь, и мой совет, вероятно, следует игнорировать или, по крайней мере, проверять, если вы используете другую базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...