Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để giải quyết tình trạng Tiến thoái lưỡng nan về việc lưu trữ tên người trong MySQL và giữ cả tính phân biệt và tìm kiếm các tên tương tự?

Điều hữu ích là nếu bạn có thể phân tách tên đầy đủ thành các "từ tên" thành phần và lưu trữ mã hóa ngữ âm (ẩn dụ hoặc một trong nhiều lựa chọn khác) cho mỗi từ. Mặc dù vậy, bạn chỉ cần khái niệm về các từ tên, không cần phân loại cụ thể nó là đầu tiên hoặc giữa hoặc cuối cùng, điều này tốt vì những danh mục đó không hoạt động tốt giữa các nền văn hóa). Nhưng bạn có thể sử dụng thông tin thứ tự vị trí sau này trong xếp hạng nếu bạn muốn để tìm kiếm "Paul Carl" khớp với "Paul Karl" tốt hơn so với "Carl Paul". Bạn cần lưu ý về dấu câu không rõ ràng có thể yêu cầu lưu trữ nhiều phiên bản của một số từ tên. Ví dụ, Bre-Anna Heim sẽ được chia thành các từ tên "bre" "anna" "breanna" và "heim". Đôi khi dấu gạch ngang không liên quan như Bre-Anna, nhưng đôi khi không giống như trong Sally-June ". Bre-Anna không bao giờ chỉ sử dụng Bre hoặc Anna, nhưng đôi khi Sally-June có thể chỉ sử dụng Sally hoặc chỉ June. Thật khó để biết nên bao gồm cả hai khả năng.

Bạn có thể viết truy vấn của mình chống lại điều này bằng cách phân tách tương tự và mã hóa phiên âm tên đầy đủ mà bạn đang tìm kiếm. Truy vấn của bạn có thể trả về, chẳng hạn, những tên đầy đủ có hai hoặc nhiều khớp phiên âm tên thành phần (hoặc một nếu chỉ có một tên trong tìm kiếm hoặc nguồn). Điều này cung cấp cho bạn một tập hợp con gồm các tên đầy đủ để xem xét thêm. Bạn có thể đưa ra một bảng xếp hạng đơn giản về chúng, hoặc thậm chí thực hiện một cái gì đó như một thuật toán so khớp khoảng cách trên tập hợp con này, điều này sẽ quá tốn kém về mặt tính toán để thực hiện đối với toàn bộ hàng triệu tên. Khi tôi nói đối sánh khoảng cách, tôi đang nói các thuật toán trực tuyến như khoảng cách Levenshtein và những thứ tương tự.

(sửa) Lý do cho việc này là xử lý các trường hợp như tên sau:Maria de los Angeles Gomez-Rodriguez. Một người nhập dữ liệu có thể chỉ nhập Maria Gomez. Một người khác có thể vào Maria Gomez Rodriguez. Tuy nhiên, một người khác có thể vào 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. Trình tạo truy vấn Doctrine DATE_FORMAT không hoạt động

  2. Giới hạn Mysql với trong câu lệnh

  3. Sự cố cài đặt Ruby on Rails (Windows)

  4. netbeans với cá thủy tinh không tìm thấy trình điều khiển phù hợp cho mysql:jdbc

  5. Làm cách nào để biết bộ ký tự của cơ sở dữ liệu / bảng / cột MySQL là gì?