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_idserá 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_idestá a ser utilizado para armazenar a chave estrangeira que faz referência ao campoidda tabelausers. Como o campoidda tabelausersé geralmente um unsigned big integer (por padrão, Laravel usa o tipobigIncrementspara chaves primárias), a chave estrangeirauser_idprecisa ser do mesmo tipo para que as relações funcionem corretamente.- O método
index()cria um índice na colunauser_id. Um índice melhora o desempenho nas consultas que utilizam esta coluna. Quando fazemos buscas ou filtramos dados pelouser_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.