sql >> Database >  >> RDS >> Mysql

Gegevenstype voor URL

Uw vraag laat veel aan de verbeelding over.

Om te beginnen moeten we aannemen dat het doel van uw index is om als primaire sleutel te dienen om duplicaten te voorkomen. U zult geen applicatie ontwikkelen die ooit tegen een gebruiker zegt:"Sorry, er is een fout geslopen in uw gegevensinvoer van 1800 tekens; het komt niet overeen, probeer het opnieuw."

Bovendien moeten we aannemen dat deze URL's van u mogelijk veel CGI-parameters (?param=val¶m=val¶m=val) bevatten.

Als deze veronderstellingen waar zijn, kun je het volgende doen.

  1. Maak uw URL-kolom langer, als een varchar, als dat nodig is.

  2. Voeg een SHA-1 hashkolom toe aan uw tabel. SHA-1 hashes bestaan ​​uit strings van 40 karakters (hexdigits).

  3. Maak van die kolom uw primaire sleutel.

  4. Als je dingen in je tabel plaatst, gebruik dan de mySQL SHA1-functie om de hash-waarden te berekenen.

  5. Gebruik het mySQL-commando INSERT ... ON DUPLICATE KEY UPDATE om rijen aan uw database toe te voegen.

Hiermee kunt u zonder verwarring dubbele URL's uit uw database houden op een manier die goed kan worden opgeschaald.

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



  1. Hoe de DateTime()-functie werkt in SQLite

  2. Ontvang bijgewerkte waarde in MySQL in plaats van betrokken rijen

  3. Hoe de taakresultaten van het SSIS-pakket controleren nadat de uitvoering ervan is voltooid?

  4. Een UUID genereren in Postgres voor Insert-instructie?