Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Devo usar ON DELETE CASCADE, :dependent => :destroy ou ambos?


Você não deve usar dependente => :destroy em seus modelos se tiver FKs com ON DELETE CASCADE. Ele pode executar consultas desnecessárias e você não pode contar com isso não quebrará as coisas no futuro. Você deve colocar um comentário em seu arquivo de modelo para documentar que isso está acontecendo. no entanto.

Recomendo também fazer os FKs nas migrações. Seria muito melhor se seu banco de dados de teste tivesse as mesmas restrições que seu banco de dados de produção, o que pode causar bugs muito sorrateiros. Há um plug-in RedHill (redhillonrails_core) que facilita as chaves estrangeiras nas migrações e permite despejos de esquema com restrições FK, portanto, o teste é muito mais simples.