Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara terbaik untuk menjaga bidang TEXT tetap unik di database MySQL

Ketika saya ditanya di komentar bagaimana saya akan menyelesaikan ini, saya akan menulisnya sebagai tanggapan.

Berada dalam situasi seperti itu menunjukkan kesalahan dalam desain aplikasi. Pertimbangkan apa artinya.

Anda memiliki teks yang tidak dapat Anda tentukan panjangnya sebelumnya, dan yang bisa sangat panjang (hingga 64k), yang ingin Anda pertahankan keunikannya. Bayangkan sejumlah data yang dipecah menjadi kunci terpisah, dan menyusun indeks komposit untuk menghasilkan keunikan. Inilah yang Anda coba lakukan. Untuk bilangan bulat, ini akan menjadi indeks dari 16000 bilangan bulat, digabungkan dalam indeks gabungan.

Pertimbangkan lebih lanjut bahwa bidang tipe CHARACTER (CHAR, VARCHAR, TEXT) mendasari interpretasi dengan encoding, yang selanjutnya memperumit masalah.

Saya sangat merekomendasikan membagi data entah bagaimana. Ini tidak hanya membebaskan DBMS dari memasukkan blok karakter panjang variabel, tetapi juga mungkin memberikan beberapa kemungkinan untuk menghasilkan kunci komposit atas bagian data. Mungkin Anda bahkan dapat menemukan solusi penyimpanan yang lebih baik untuk data Anda.

Jika Anda memiliki pertanyaan, saya sarankan untuk memposting tabel dan/atau struktur database dan menjelaskan data logis apa yang terdapat dalam bidang TEXT, dan mengapa menurut Anda itu harus unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah Load DATA tanpa file (yaitu, dalam memori) dimungkinkan untuk MySQL dan Java?

  2. Ubah jenis kolom dari Date ke DateTime selama migrasi ROR

  3. Peringkat MySQL top-N dan jumlahkan sisa grup yang sama

  4. Bagaimana cara mendapatkan struktur tabel dari file .frm menggunakan PHP?

  5. Perbarui kueri gagal dengan kesalahan:1175