Maykonn 6 Denunciar post Postado Setembro 8, 2013 Faz um bom tempo que eu não era responsável por projetar o banco de dados de uma aplicação. Nesse momento é um banco de dados pequeno e com poucas entidades, mas com o tempo novas entidades serão adicionadas, removidas ou alteradas, assim como os relacionamentos entre elas. Portanto achei perfeito para melhorar meu conhecimento sobre as Constraints do MySQL e sobre como manter as coisas simples - não entenda como simplório, mas sim que não prejudique refatorações e manutenções futuras - num banco de dados MySQL. Preguiçosos torcem o nariz para esse tipo questão. Acham que isso é apenas responsabilidade de um DBA. Sim, talvez seja mesmo. Mas conhecimento nunca é demais... não sei o que dizer a eles. Talvez possa dizer que, um dia terão dúvidas como a qual estou tendo agora, talvez quando forem responsáveis por suas decisões. Isso ficou parecendo um recado... Mas vamos a minha dúvida. Conheço apenas os constraints CASCADE e NO ACTION do MySQL, afinal são os que usei até hoje e acho que a maioria também. Sei que existem outros: RESTRICT e SET NULL - há outros? Porém, apesar de fazer algumas consultas, não compreendi totalmente o comportamento desses dois últimos e quando usá-los. Na verdade acho que seria interessante termos aqui uma aula sobre constraints. Afinal de contas, entendo o comportamento de um CASCADE e de NO ACTION, mas não tenho certeza em quais contextos devo utilizá-los, assim como os RESTRICT e SET NULL. Alguém disposto a dar uma breve aula sobre o assunto? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 8, 2013 Grosso modo Restrict nao deixa deletar se houver dependentes - uso tipico uf x estados Set null coloca null nas dependentes - uso tipico um atributo opcional Compartilhar este post Link para o post Compartilhar em outros sites