Temos um banco de dados de recursos, sejam eles produtos, postagens em blogs ou algo assim. Precisamos criar um esquema de URL para endereçá-los, para o site público.
Aqui estão dois exemplos vinculados ao ID do banco de dados:
Aqui está um exemplo amigável:
(Um pequeno vislumbre da minha vida de navegação lá)
Gosto dos URLs amigáveis, pois você tem uma idéia sobre o que está no final do URL quando passa o mouse ou o vê em um email ou documento. É melhor para SEO, ou costumava ser.
O que acontece quando o documento ou produto é renomeado? Ou porque mudou (o Wiki pode não mudar, mas nossos recursos podem) ou devido a um erro de digitação, certo? Nossos recursos são muito técnicos, palavras longas e propensas a erros.
Além disso, temos um ID do banco de dados, que é um número. Vejamos uma ideia para o endereço de um vídeo usando uma loja de aluguel fingido:
O ID é óbvio e é usado na consulta ao banco de dados. Bem.
O bit das portas deslizantes não é exclusivo e apenas é gerado a partir do título do vídeo, pode ser verificado no GET, portanto, se as portas deslizantes foram inseridas e não correspondem ao que realmente está no documento 287171, ele responde 404.
Ou talvez isso possa ser ignorado, permitindo que os humanos colem o que quiserem lá dentro, se alguém quiser. Portanto, este URL também funcionaria:
O problema da verificação da parte amigável é, como mencionado, o problema de renomear ou corrigir erros de digitação. Se o nome foi alterado e, em nosso domínio, isso não acontece, não queremos quebrar os URLs existentes, então devemos:
Só não verifique a parte amigável.
Verifique, mas adicione um 'histórico' de partes amigáveis ao registro do banco de dados para que quaisquer IDs amigáveis anteriores ainda funcionem!
Seus pensamentos e idéias são bem-vindos.
Luke
http://programmers.stackexchange.com/questions/255684/providing-friendly-urls-for-a-website-vs-realities-of-database-ids
(usando uma versão não-verificadas à luz das alterações título, também a ligação mais curta "share" é apenas o id:http://programmers.stackexchange.com/q/255684/25768
(e ID de usuário para rastreamento badge)