Mysql
 sql >> Base de données >  >> RDS >> Mysql

Type de données pour l'URL

Votre question laisse beaucoup à l'imagination.

D'une part, nous devons supposer que le but de votre index est de servir de clé primaire pour éviter les doublons. Vous ne développerez pas une application qui dira jamais à un utilisateur, « Désolé, il y a une erreur dans votre saisie de données de 1 800 caractères ; cela ne correspond pas, veuillez réessayer ».

D'autre part, nous devons supposer que vos URL contiennent potentiellement de nombreux paramètres CGI (?param=val¶m=val¶m=val).

Si ces hypothèses sont vraies, alors voici ce que vous pouvez faire.

  1. Rendez votre colonne d'URL plus longue, en tant que varchar, si nécessaire.

  2. Ajoutez une colonne de hachage SHA-1 à votre table. Les hachages SHA-1 sont constitués de chaînes de 40 caractères (chiffres hexadécimaux).

  3. Faites de cette colonne votre clé primaire.

  4. Lorsque vous mettez des éléments dans votre table, utilisez la fonction mySQL SHA1 pour calculer les valeurs de hachage.

  5. Utilisez la commande mySQL INSERT ... ON DUPLICATE KEY UPDATE pour ajouter des lignes à votre base de données.

Cela vous permettra de garder les URL en double hors de votre base de données sans confusion d'une manière qui évolue bien.

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