Nous avons une base de données de ressources, que ce soit des produits, des articles de blog ou quelque chose du genre. Nous devons concevoir un schéma d'URL pour les résoudre, pour le site Web public.
Voici deux exemples liés à l'ID de base de données:
Voici un exemple convivial:
(Un petit aperçu de ma vie de navigation là-bas)
J'aime les URL conviviales car vous avez une idée de ce qui se trouve à la fin de l'URL lorsque vous survolez ou voyez-le dans un e-mail ou un document. C'est mieux pour le SEO, ou c'était le cas auparavant.
Que se passe-t-il lorsque le document ou le produit est renommé? Soit parce qu'il a changé (le wiki peut ne pas changer mais nos ressources le pourraient) soit à cause d'une faute de frappe, non? Nos ressources sont très techniques, longues et sujettes aux erreurs.
De plus, nous avons un ID de base de données, qui est un nombre. Regardons une idée pour une adresse d'une vidéo en utilisant un magasin de location de simulation:
L'ID est évident et est utilisé dans la recherche de base de données. Bien.
Le bit de portes coulissantes n'est pas unique et vient d'être généré à partir du titre de la vidéo, il pourrait être vérifié sur GET, donc si les portes coulissantes ont été entrées et ne correspondent pas à ce qui est vraiment dans le document 287171, il répond 404.
Ou peut-être que cela pourrait être ignoré, permettant aux humains de coller ce qu'ils veulent là-dedans, si quelqu'un s'en souciait. Cette URL fonctionnerait donc également:
Le problème avec la vérification de la partie conviviale est, comme mentionné, le problème du renommage ou de la correction de faute de frappe. Si le nom a changé, et dans notre domaine cela se produit, nous ne voulons pas casser les URL qui existent, alors devrions-nous:
Il suffit de ne pas vérifier la partie amicale.
Vérifiez, mais ajoutez un «historique» des parties conviviales à l'enregistrement de la base de données pour que tous les ID conviviaux précédents fonctionnent toujours!
Vos pensées et idées sont les bienvenues.
Luc
http://programmers.stackexchange.com/questions/255684/providing-friendly-urls-for-a-website-vs-realities-of-database-ids
(en utilisant une version non vérifiée à la lumière des changements de titre, le lien de partage plus court n'est que l'identifiant:http://programmers.stackexchange.com/q/255684/25768
(et l'identifiant utilisateur pour le suivi des badges)