Tenemos una base de datos de recursos, ya sean productos, publicaciones de blog o algo así. Necesitamos diseñar un esquema de URL para abordarlos, para el sitio web público.
Aquí hay dos ejemplos vinculados con ID de base de datos:
Aquí hay un ejemplo que es amigable:
(Un pequeño vistazo a mi vida de navegación allí)
Me gustan las URL amigables ya que tienes una idea sobre lo que está al final de la URL cuando pasas el mouse por encima o la ves en un correo electrónico o documento. Es mejor para SEO, o solía ser.
¿Qué sucede cuando se cambia el nombre del documento o producto? Ya sea porque cambió (es posible que Wiki no cambie pero nuestros recursos sí) o por un error tipográfico, ¿verdad? Nuestros recursos son muy técnicos, largas palabras y propensos a errores.
Además, tenemos una ID de base de datos, que es un número. Veamos una idea para la dirección de un video usando una tienda de alquiler simulada:
El ID es obvio y se usa en la búsqueda de DB. Multa.
El bit de puertas correderas no es único y solo se generó a partir del título del video, podría verificarse en GET, por lo que si se ingresaron puertas deslizantes y no coinciden con lo que realmente está en el documento 287171, responde 404.
O tal vez podría ignorarse, permitiendo que los humanos peguen lo que quieran allí, si a alguien le importa. Entonces esta URL también funcionaría:
El problema con la verificación de la parte amigable es, como se mencionó, el problema del cambio de nombre o la corrección de errores tipográficos. Si el nombre cambió, y en nuestro dominio eso sucede, no queremos romper las URL que existen, así que deberíamos:
Simplemente no verificar la parte amigable.
Verifique, pero agregue un 'historial' de partes amigables al registro de la base de datos para que cualquier ID amigable anterior siga funcionando.
Tus pensamientos e ideas son bienvenidas.
Luke
http://programmers.stackexchange.com/questions/255684/providing-friendly-urls-for-a-website-vs-realities-of-database-ids
(usando una versión no verificada a la luz de los cambios en el título, también el enlace más corto "compartir" es solo la identificación:http://programmers.stackexchange.com/q/255684/25768
(y la identificación del usuario para el seguimiento de la insignia)