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

Melhor maneira de manter o campo TEXT exclusivo no banco de dados MySQL


Como me perguntaram nos comentários como eu resolveria isso, vou escrever como resposta.

Estar em tal situação sugere erros no design do aplicativo. Considere o que isso significa.

Você tem um texto cujo comprimento não pode ser especificado antecipadamente e que pode ser extremamente longo (até 64k), do qual você deseja manter a exclusividade. Imagine essa quantidade de dados dividida em chaves separadas e compondo um índice composto para gerar exclusividade. Isto é o que você está tentando fazer. Para inteiros, isso seria um índice de 16.000 inteiros, unidos em um índice composto.

Considere ainda que os campos do tipo CHARACTER (CHAR, VARCHAR, TEXT) estão subjacentes à interpretação por codificação, o que complica ainda mais o problema.

Eu recomendo dividir os dados de alguma forma. Isso não apenas libera o DBMS de incorporar blocos de caracteres de comprimento variável, mas também pode dar alguma possibilidade de gerar chaves compostas sobre partes dos dados. Talvez você possa até encontrar uma solução de armazenamento melhor para seus dados.

Se você tiver dúvidas, sugiro postar a estrutura da tabela e/ou banco de dados e explicar quais dados lógicos o campo TEXT contém e por que você acha que ele precisaria ser exclusivo.