J'ai une table et j'essaye d'ajouter un index unique sur deux colonnes. Ces colonnes sont également indexées. Ma question est donc de savoir si je peux simplement supprimer les index qui n'étaient que pour une colonne ou si je dois utiliser les trois index:
add_index "subscriptions", ["user_id"]
add_index "subscriptions", ["content_id"]
add_index "subscriptions", ["user_id"], ["content_id"], :unique => true
ruby-on-rails
activerecord
Markus
la source
la source
used_id
etcontent_id
dans des index séparés si vous avez également un index unique des deux colonnes. Cela vaut probablement aussi pour d'autres DB ... Contrairement à ce que vous attendez, cela aura un impact négatif sur les performances (notamment les insertions / mises à jour).Réponses:
la source
%w(user_id content_id)
en ruby crée juste un tableau de cordes, ce n'est pas spécial pour les rails. Vous pouvez faire la même chose avec la"user_id content_id".split
création d'un tableau de chaînes. Je suis sûr que vous le savez, ce commentaire est juste pour que les autres lecteurs ne le rapportent pas correctement aux rails :)%w(user_id content_id)
c'est un tableau de cordes. Ce qui est le même que['user_id', 'content_id']
. La notation différente pour Array of Symbols est%i(user_id content_id)
, ou comme l'a écrit l'OP[:user_id, :content_id]