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

Il modo migliore per mantenere il campo TESTO univoco nel database MySQL

Poiché nei commenti mi è stato chiesto come avrei risolto, lo scriverò come risposta.

Trovarsi in una situazione del genere suggerisce errori nella progettazione dell'applicazione. Considera cosa significa.

Hai un testo di cui non puoi specificare la lunghezza in anticipo, e che può essere estremamente lungo (fino a 64k), di cui vuoi mantenere l'unicità. Immagina una tale quantità di dati suddivisi in chiavi separate e la composizione di un indice composito per generare unicità. Questo è ciò che stai cercando di fare. Per i numeri interi, questo sarebbe un indice di 16000 numeri interi, uniti in un indice composto.

Considera inoltre che i campi di tipo CHARACTER (CHAR, VARCHAR, TEXT) sono alla base dell'interpretazione mediante codifica, il che complica ulteriormente il problema.

Consiglio vivamente di dividere i dati in qualche modo. Questo non solo libera il DBMS dall'incorporare blocchi di caratteri di lunghezza variabile, ma potrebbe anche dare qualche possibilità di generare chiavi composte su parti dei dati. Forse potresti anche trovare una soluzione di archiviazione migliore per i tuoi dati.

In caso di domande, suggerirei di pubblicare la tabella e/o la struttura del database e di spiegare quali dati logici contiene il campo TEXT e perché ritieni che debba essere univoco.