Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O que seria esse unique criado no modelo?

A professora colocou "unique" no campo "cpf" do modelo para demostrar que não deveria ser feito assim, o que deveria acontecer é fazer uma nova migração com "addConstraint". Mas esse "unique" que ela colocou e retirou do modelo tem utilidade? Qual seria? Qual a diferença entre ter "unique" no modelo e na migração?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Oi Luidi! Tudo bem?

Ótima pergunta! Vamos lá: a propriedade unique no modelo do Sequelize é usada para garantir que os valores de um campo específico sejam únicos na tabela do banco de dados. Quando você define unique: true em um campo, como cpf, está dizendo ao Sequelize que ele deve tentar garantir que não haja duplicatas para esse campo.

No entanto, quando você coloca unique apenas no modelo, isso não cria automaticamente uma restrição no banco de dados. Para garantir que o banco de dados realmente aplique essa regra, é necessário criar uma migração que adicione uma constraint de unicidade diretamente no banco de dados. Isso é feito com addConstraint em uma migração.

A diferença principal é que:

  • No modelo: unique: true serve mais como uma indicação ao Sequelize, mas não garante que o banco de dados aplique essa restrição. Pode ser útil para validações no nível do aplicativo, mas não é suficiente para garantir a integridade dos dados no banco.

  • Na migração: addConstraint realmente cria a constraint no banco de dados, garantindo que a unicidade seja aplicada e mantida diretamente pelo sistema de gerenciamento do banco de dados.

Portanto, para garantir que o CPF seja único e que o banco de dados aplique essa regra, você deve usar addConstraint em uma migração.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.