/ / Ako funguje add_index v Rails s parametrom „unique: true“ pre 2 parametre? - Ruby-on-Rails, databáza, migrácia

Ako funguje add_index v Rails s „jedinečným: pravdivým“ pre 2 parametre? - Ruby-on-rails, databáza, migrácia

Ako sa uplatňuje jedinečná pravda na 2 ID?

add_index :table_name, [:some_id, :another_id], unique: true, algorithm: :concurrently

odpovede:

0 pre odpoveď č. 1

Znamená to vo vašom table_name, existuje iba jeden riadok s jedinečnou hodnotou some_id a another_id s poradím indexu, príklad:

id, some_id, another_id
1, 11, 22
2, 11, 33
3, 22, 11

potom vám databáza nedovolí vložiť nový riadok s some_id = 11 a another_id = 22

Poradie [:some_id, :another_id] je dôležité, pretože databáza sa rozhodne použiť index na základe tohto poradia, napríklad:

Tieto dotazy použijú index:

select * from table_name where some_id = "11"
select * from table_name where some_id = "11" AND another_id = "22"

Tento dopyt nebude používať index:

select * from table_name where another_id = "22"