Mysql
 sql >> Database >  >> RDS >> Mysql

Dovrei usare ON DELETE CASCADE, :dependent => :destroy o entrambi?

Non dovresti usare depend => :destroy nei tuoi modelli se hai FK con ON DELETE CASCADE. Può eseguire query non necessarie e non puoi contare sul fatto che non rompa le cose in futuro. Dovresti inserire un commento nel tuo file modello per documentare che sta accadendo. però.

Consiglio anche di fare gli FK nelle migrazioni. Sarebbe molto meglio se il tuo database di test avesse gli stessi vincoli del tuo database di produzione, che possono causare bug molto subdoli. C'è un plug-in RedHill (redhillonrails_core) che semplifica le migrazioni di chiavi esterne e abilita i dump dello schema con vincoli FK, quindi il test è molto più semplice.