Mysql
 sql >> Database >  >> RDS >> Mysql

Tipo di dati per l'URL

La tua domanda lascia molto all'immaginazione.

Per prima cosa, dobbiamo presumere che lo scopo del tuo indice sia quello di fungere da chiave primaria per evitare duplicati. Non svilupperai un'applicazione che dice mai a un utente "spiacente, c'è un errore nell'immissione dei dati di 1800 caratteri; non corrisponde, per favore riprova".

Per un'altra cosa, dobbiamo presumere che questi tuoi URL contengano potenzialmente molti parametri CGI (?param=val¶m=val¶m=val).

Se queste ipotesi sono vere, ecco cosa puoi fare.

  1. Se necessario, allunga la colonna dell'URL, come varchar.

  2. Aggiungi una hashcolumn SHA-1 alla tua tabella. Gli hash SHA-1 sono costituiti da stringhe di 40 caratteri (cifre esadecimali).

  3. Rendi quella colonna la tua chiave primaria.

  4. Quando inserisci elementi nella tua tabella, usa la funzione MySQL SHA1 per calcolare i valori hash.

  5. Usa il comando INSERT ... ON DUPLICATE KEY UPDATE mySQL per aggiungere righe al tuo database.

Ciò ti consentirà di mantenere gli URL duplicati fuori dal tuo database senza confusione in un modo che si adatta perfettamente.

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