Um blog é, acima de tudo, dados
Por trás de qualquer blog há duas entidades que se relacionam:
- Posts: os artigos. Cada um tem
id,titulo,slug,conteudoedata. - Comentários: o que os leitores escrevem. Cada um tem
id,autor,textoe, o mais importante, umpost_idque aponta para o post ao qual pertence.
Esta é uma relação um para muitos (1:N): um post tem muitos comentários,
mas cada comentário pertence a um único post. A coluna post_id da
tabela comentarios é a chave estrangeira que materializa essa relação.
posts ──< (post_id) comentarios
1 N
O slug: uma URL legível
O titulo de um post é para as pessoas: "Meu primeiro post". Mas uma URL
com espaços e acentos é frágil. Por isso geramos um slug: uma versão do
título apta para URLs, em minúsculas e com hifens no lugar de espaços.
"Aprendendo SQL" → /posts/aprendendo-sql
O slug é estável e único: mesmo que você mude o título visível, o link pode continuar funcionando. E é legível, o que ajuda as pessoas e o SEO.
Paginação: não carregue tudo
Um blog com centenas de posts não pode enviá-los todos de uma vez. A paginação
divide a listagem em páginas de tamanho fixo (p. ex. 10 por página) e o cliente
pede a que quer: /posts?page=2. Em SQL isso é LIMIT + OFFSET; em
JavaScript, um slice sobre o array.