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

Bagaimana mengatasi Dilema menyimpan nama manusia di MySQL dan menjaga diskriminasi dan pencarian nama yang mirip?

Apa yang berguna adalah jika Anda dapat menguraikan nama lengkap menjadi komponen "kata nama" dan menyimpan pengkodean fonetik (metafon atau salah satu dari banyak pilihan lain) untuk masing-masingnya. Anda hanya perlu gagasan kata-kata nama, tidak secara khusus mengkategorikannya sebagai pertama atau tengah atau terakhir, yang baik-baik saja karena kategori tersebut tidak bekerja dengan baik lintas budaya). Tetapi Anda dapat menggunakan informasi urutan posisi nanti di peringkat jika Anda mau sehingga pencarian "Paul Carl" cocok dengan "Paul Karl" lebih baik daripada mencocokkan "Carl Paul". Anda perlu menyadari tanda baca ambigu yang mungkin memerlukan penyimpanan beberapa versi dari beberapa kata nama. Misalnya Bre-Anna Heim akan dipecah menjadi kata-kata nama "bre" "anna" "breanna" dan "heim". Terkadang tanda hubung tidak relevan seperti Bre-Anna, tetapi terkadang tidak seperti di Sally-Juni". Bre-Anna tidak pernah hanya menggunakan Bre atau Anna, tetapi Sally-June mungkin hanya menggunakan Sally atau hanya Juni kadang-kadang. Sulit untuk mengetahui yang mana, jadi mencakup kedua kemungkinan.

Anda dapat menulis kueri Anda terhadap ini dengan cara yang sama mendekomposisi dan menyandikan secara fonetis nama lengkap yang Anda cari. Kueri Anda dapat mengembalikan, katakanlah, nama lengkap yang memiliki dua atau lebih kecocokan fonetik nama komponen (atau satu jika hanya ada satu nama dalam pencarian atau sumber). Ini memberi Anda subset nama lengkap untuk dipertimbangkan lebih lanjut. Anda bisa membuat peringkat sederhana dari mereka, atau bahkan melakukan sesuatu seperti algoritma pencocokan jarak pada subset ini, yang akan terlalu mahal secara komputasi untuk dilakukan terhadap seluruh juta nama. Ketika saya mengatakan pencocokan jarak, saya berbicara tentang algoritme online seperti jarak Levenshtein dan sejenisnya.

(edit) Alasan untuk ini adalah menangani kasus seperti nama berikut:Maria de los Angeles Gomez-Rodriguez. Satu orang entri data hanya dapat memasukkan Maria Gomez. Lain mungkin masuk Maria Gomez Rodriguez. Namun yang lain mungkin memasuki Maria Angeles Rodrigus.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Muat array Javascript dengan data database MYSQL

  2. MYSQL Query - Bagaimana cara menampilkan nilai yang benar, bukan gumpalan, dengan melakukan CONCAT dan membuat kolom baru dengan nilai total kelipatan yang benar?

  3. Menyimpan data kotak teks kaya ke database dengan pemformatan

  4. Laravel 5:jalankan migrasi di lingkungan server, bukan lokal

  5. Pencarian mysql dengan string yang dibatasi koma