Todos os Tipos SQL: Para que servem, Onde usar e O que muda entre A, B ou C
Consulte todos os tipos de campos do banco de dados organizados por categoria funcional. Entenda exatamente para que serve cada tipo, onde aplicar no seu projeto e o que muda na prática se você escolher o tipo A, B ou C na hora de desenhar no DrawDB e programar em PHP.
6. Binários, Arquivos (BLOBs) e Coordenadas de Mapa (Geo)
Para bytes criptográficos, endereços IP compactados, anexos e coordenadas GPS.
⚖️ O que muda se eu salvar fotos/PDFs em (A) VARCHAR (Caminho/URL) vs (B) BLOB (Dentro do Banco)?
Comparativo de Impacto Real (A vs B vs C)Opção A: Usar VARCHAR(255) com o Caminho/URL do Arquivo (RECOMENDADO)
Opção B: Usar BLOB / MEDIUMBLOB / LONGBLOB (Arquivo dentro do Banco)
Opção C: Usar BINARY(16) / VARBINARY(16)
📌 Para que serve este Tipo SQL:
Armazenar sequências curtas de bytes brutos (sem tabela de caracteres/acentos).
📍 Onde posso usar:
- • Endereços IPv4 e IPv6 compactados com `inet_pton()`: VARBINARY(16)
- • UUID compactado em bytes: BINARY(16)
- • Hash SHA-256 binário puro: BINARY(32)
⚖️ O que muda se eu escolher este?
Compara byte a byte (muito mais rápido que comparar texto com collation UTF-8) e economiza até 55% de espaço em hashes e UUIDs.
📌 Para que serve este Tipo SQL:
Armazenar arquivos binários ou dados criptografados diretamente no banco.
📍 Onde posso usar:
- • Certificados digitais fiscais (.pfx) criptografados, assinaturas biométricas compactas
⚖️ O que muda se eu escolher este?
Diferente do TEXT, o BLOB não possui charset/collation (guarda bytes puros). Evite usar para fotos públicas do site (prefira salvar no disco e guardar a URL em VARCHAR).
📌 Para que serve este Tipo SQL:
Guardar um ponto geográfico (Longitude e Latitude) para cálculos nativos de distância em mapas.
📍 Onde posso usar:
- • Localização de lojas, entregadores ou imóveis para buscar "todos num raio de 5 km"
⚖️ O que muda se eu escolher este?
Se usar 2 colunas `DECIMAL(10,8)` e `DECIMAL(11,8)`, é muito mais simples de ler e gravar no PHP. Se usar `POINT`, você ganha o poder de criar um `SPATIAL INDEX` e usar `ST_Distance_Sphere()` no SQL!
📌 Para que serve este Tipo SQL:
Desenhar áreas fechadas no mapa (bairros, zonas de taxa de entrega, fazendas).
📍 Onde posso usar:
- • Verificar se o ponto GPS da casa do cliente cai dentro da área de cobertura de entrega (`ST_Contains`).
⚖️ O que muda se eu escolher este?
Permite que o próprio banco de dados responda se uma coordenada está dentro ou fora de um polígono desenhado no mapa.