Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Soll ich ON DELETE CASCADE, :dependent => :destroy oder beides verwenden?

Sie sollten nicht abhängig => :destroy in Ihren Modellen verwenden, wenn Sie FKs mit ON DELETE CASCADE haben. Es kann unnötige Abfragen ausführen, und Sie können sich nicht darauf verlassen, dass es in Zukunft nichts kaputt macht. Sie sollten einen Kommentar in Ihre Modelldatei einfügen, um zu dokumentieren, dass dies geschieht. obwohl.

Ich empfehle auch, die FKs in den Migrationen zu machen. Es wäre viel besser, wenn Ihre Testdatenbank die gleichen Einschränkungen wie Ihre Produktionsdatenbank hätte, was sehr hinterhältige Fehler verursachen kann. Es gibt ein RedHill-Plugin (redhillonrails_core), das Fremdschlüssel bei Migrationen vereinfacht und Schema-Dumps mit FK-Einschränkungen ermöglicht, sodass das Testen viel einfacher ist.