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ď č. 1Znamená 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"