Recapitulação e Prática
Principais lições
- A maioria dos apps precisa de apenas uma das três formas de armazenamento — relacional, documento ou chave-valor — e relacional é a escolha padrão segura.
- Comece com um banco de dados gerenciado; você mantém os dados e as decisões de schema, a plataforma mantém os servidores funcionando.
- Um bom design de schema significa tipos honestos, chaves estrangeiras e restrições, índices sensatos e nenhum dado duplicado.
- Trate toda migração como uma porta de mão única: faça backup antes de qualquer coisa que descarte ou renomeie, e revise de perto migrações escritas por IA.
- Sempre exija consultas parametrizadas para que a entrada do usuário nunca seja concatenada em .
Coloque em prática
Escolha uma ideia de app pequena e escreva primeiro suas entidades e relacionamentos em português simples. Depois entregue essa descrição para a IA e peça um schema mais uma migração de avanço — e revise o resultado contra a checklist deste capítulo antes de rodar qualquer coisa.
Design a relational schema for a personal bookmarks app.
Entities and relationships:
- A user has many bookmarks.
- A bookmark belongs to one user, has a URL, a title, and many tags.
- A tag can apply to many bookmarks.
Requirements:
- Use UUID primary keys and created_at timestamps.
- Enforce relationships with foreign keys.
- Add indexes for the columns we'll filter on.
- Give me the schema as SQL plus a forward migration file.
- Flag any migration step that drops or renames so I can back up first.