Simulado Prático de Fixação

Desafio de Modelagem: Tipos de Dados, DrawDB & PHP PDO

Teste seus conhecimentos respondendo às 8 situações reais de arquitetura de banco de dados abaixo e confira a explicação detalhada processada pelo PHP.

Questão #1 — Documentos & Strings

Você está modelando a tabela `clientes` no DrawDB e precisa criar a coluna `cpf` (sem pontos ou traços, apenas os 11 dígitos). Qual é o tipo de dado ideal e por quê?

Questão #2 — Financeiro & Decimais

Na tabela `produtos`, você precisa criar a coluna `preco_venda` para guardar valores em Reais (ex: R$ 1.499,90). Qual configuração no DrawDB e no PHP PDO você deve usar?

Questão #3 — Relacionamentos no DrawDB

Ao ligar a tabela `usuarios` (pai) com a tabela `pedidos` (filha) no DrawDB, você recebe um erro ao rodar o SQL no MySQL sobre incompatibilidade de Foreign Key. Qual é a causa mais comum desse erro?

Questão #4 — Segurança em PHP

Você vai armazenar a senha de login dos usuários usando a função nativa `password_hash($senha, PASSWORD_DEFAULT)` do PHP 8. Qual deve ser o tipo da coluna `senha_hash` no banco?

Questão #5 — Arquivos & Mídia

Seu sistema terá um catálogo com 50.000 produtos e cada produto possui 4 fotos em alta resolução. Qual é a melhor prática de banco de dados?

Questão #6 — Inteiros & Otimização

Você precisa guardar a nota de uma avaliação de produto (de 1 a 5 estrelas) e a idade de um aluno (0 a 120 anos). Qual tipo inteiro consome apenas 1 Byte e atende perfeitamente ambos os casos?

Questão #7 — Modelagem N:N no DrawDB

Em um sistema escolar, 1 Aluno pode se matricular em vários Cursos, e 1 Curso pode ter vários Alunos (N:N). Como desenhamos isso no DrawDB?

Questão #8 — Datas & Horários

Qual é o erro grave de salvar datas no banco usando `VARCHAR(10)` no formato brasileiro `"25/12/2026"` em vez de usar o tipo nativo `DATE`?