sql >> Base de Datos >  >> RDS >> Mysql

Tipo de datos para URL

Tu pregunta deja mucho a la imaginación.

Por un lado, debemos asumir que el propósito de su índice es servir como clave principal para evitar duplicados. No desarrollará una aplicación que alguna vez le diga a un usuario:"lo siento, hay un error en la entrada de datos de 1800 caracteres; no coincide, inténtelo de nuevo".

Por otro lado, debemos asumir que estas URL suyas tienen potencialmente muchos parámetros CGI (?param=val¶m=val¶m=val) en ellas.

Si estas suposiciones son ciertas, esto es lo que puede hacer.

  1. Haga que su columna de URL sea más larga, como un varchar, si es necesario.

  2. Agregue una columna hash SHA-1 a su tabla. Los valores hash SHA-1 consisten en cadenas de 40 caracteres (hexdígitos).

  3. Haga que esa columna sea su clave principal.

  4. Cuando coloque cosas en su tabla, use la función mySQL SHA1 para calcular los valores hash.

  5. Use el comando INSERT... ON DUPLICATE KEY UPDATE mySQL para agregar filas a su base de datos.

Esto le permitirá mantener las URL duplicadas fuera de su base de datos sin confusión de una manera que se amplía muy bien.

http://dev.mysql.com/doc /refman/5.1/en/insertar-en-duplicado.html