Comment le vrai unique est-il appliqué à 2 ID?
add_index :table_name, [:some_id, :another_id], unique: true, algorithm: :concurrently
Réponses:
0 pour la réponse № 1Cela signifie dans votre table_name
, il n'y a qu'une seule ligne avec une valeur unique de some_id
et another_id
avec ordre d'index, exemple:
id, some_id, another_id
1, 11, 22
2, 11, 33
3, 22, 11
alors la base de données ne vous permettra pas d'insérer une nouvelle ligne avec some_id = 11
et another_id = 22
L'ordre de [:some_id, :another_id]
est important car la base de données décidera d'utiliser l'index en fonction de cet ordre, par exemple:
Ces requêtes utiliseront index:
select * from table_name where some_id = "11"
select * from table_name where some_id = "11" AND another_id = "22"
Cette requête n'utilisera pas l'index:
select * from table_name where another_id = "22"