Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tipo de dados para URL


Sua pergunta deixa muito para a imaginação.

Por um lado, devemos assumir que o objetivo do seu índice é servir como chave primária para evitar duplicatas. Você não desenvolverá um aplicativo que diz a um usuário:"desculpe, há um erro na entrada de dados de 1800 caracteres; não corresponde, tente novamente".

Por outro lado, devemos assumir que esses seus URLs potencialmente têm muitos parâmetros CGI (?param=val¶m=val¶m=val) neles.

Se essas suposições forem verdadeiras, então aqui está o que você pode fazer.

  1. Faça sua coluna de URL mais longa, como um varchar, se precisar.

  2. Adicione uma coluna de hash SHA-1 à sua tabela. Os hashes SHA-1 consistem em strings de 40 caracteres (hexdígitos).

  3. Faça dessa coluna sua chave primária.

  4. Quando você coloca coisas em sua tabela, use a função mySQL SHA1 para calcular os valores de hash.

  5. Use o comando INSERT ... ON DUPLICATE KEY UPDATE mySQL para adicionar linhas ao seu banco de dados.

Isso permitirá que você mantenha URLs duplicados fora de sua base de dados sem confusão de uma maneira que se expanda bem.

http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html