Tipos de Dados em Migrações do Laravel.

article featured image

Como é do nosso conhecimento, os campos de uma tabela podem assumir diferentes tipos de dados. Neste sentido, é crucial compreender como definir cada um desses tipos durante a especificação dos campos de uma tabela.

Aqui estão exemplos de declarações de campos em migrações do Laravel para cada tipo de dado mencionado:

  • INT / INTEGER:
  • UNSIGNED BIG INTEGER

  • A coluna user_id será do tipo unsigned big integer. Unsigned significa que o número inteiro armazenado nesta coluna não pode ser negativo (ou seja, só pode armazenar valores positivos).
  • bigInteger refere-se a um tipo de dado que suporta números inteiros maiores do que os inteiros normais. No MySQL, um big integer é armazenado com 8 bytes (64 bits), o que permite valores entre 0 e 18,446,744,073,709,551,615 quando é unsigned.
  • Neste caso, o campo user_id está a ser utilizado para armazenar a chave estrangeira que faz referência ao campo id da tabela users. Como o campo id da tabela users é geralmente um unsigned big integer (por padrão, Laravel usa o tipo bigIncrements para chaves primárias), a chave estrangeira user_id precisa ser do mesmo tipo para que as relações funcionem corretamente.
  • O método index() cria um índice na coluna user_id. Um índice melhora o desempenho nas consultas que utilizam esta coluna. Quando fazemos buscas ou filtramos dados pelo user_id, o índice acelera essas operações. Colocar um índice numa chave estrangeira é uma prática comum, pois melhora a eficiência das consultas que envolvem relações entre tabelas (como juntar dados da tabela de utilizadores com outra tabela).
  • VARCHAR / CHAR:

  • O método unique() aplica uma restrição de unicidade à coluna "email". Isto significa que cada valor inserido neste campo deve ser único, ou seja, não podem existir dois registos com o mesmo valor de email na tabela. Se tentar inserir um valor duplicado nesta coluna, o banco de dados rejeitará a inserção e lançará um erro.
  • TEXT:

  • FLOAT / DOUBLE:
  • DECIMAL:
  • DATE:
  • TIME:
  • DATETIME / TIMESTAMP:
  • BOOLEAN / BOOL:
  • ENUM:
  • JSON:
  • BLOB:
  • GEOMETRY / POINT / LINESTRING / POLYGON:

Estes são exemplos básicos, e você pode personalizar ainda mais estas declarações dependendo dos requisitos específicos do seu projeto. Certifique-se de verificar a documentação do Laravel e do SGBD específico que está a utilizar para obter informações detalhadas sobre tipos de dados e as suas opções.

 

Post Anterior