Giả sử chúng ta có bảng Người (tên, họ, địa chỉ, SSN, v.v.).So sánh SQL và mờ
Chúng tôi muốn tìm tất cả các hàng "rất giống" đối với người được chỉ định A. Tôi muốn thực hiện một số loại so sánh logic mờ của A và tất cả các hàng từ bảng Mọi người. Sẽ có một số quy tắc suy luận mờ hoạt động riêng biệt trên một số cột (ví dụ: 3 quy tắc mờ cho tên, 2 quy tắc về họ, 5 quy tắc về địa chỉ)
Câu hỏi là phương pháp nào sau đây sẽ tốt hơn và tại sao?
Thực hiện tất cả các quy tắc mờ như thủ tục lưu trữ và sử dụng một câu lệnh SELECT nặng trả lại toàn bộ hàng mà là "rất giống" để A. Cách tiếp cận này có thể bao gồm sử dụng Soundex, sim số liệu, vv
Thực hiện một hoặc nhiều câu lệnh SELECT đơn giản hơn, trả về kết quả không chính xác, "tương tự" thành A, và sau đó so sánh mờ với A với tất cả các hàng được trả về (bên ngoài cơ sở dữ liệu) để nhận các hàng "rất giống nhau". Vì vậy, so sánh mờ sẽ được thực hiện trong ngôn ngữ lập trình ưu tiên của tôi.
Bảng Mọi người phải có tối đa 500 nghìn hàng và tôi muốn tạo khoảng 500-1000 truy vấn như thế này mỗi ngày. Tôi sử dụng MySQL (nhưng điều này vẫn chưa được xem xét).
Vui lòng cho biết bạn đang sử dụng rdbms nào. –
Tại sao không sử dụng một trường hợp trong lựa chọn của bạn trả về 1 nếu nó tương tự, 0 nếu không, sau đó tổng hợp tất cả các cột. Những người lớn hơn một phạm vi cụ thể nên được trả lại. Có vẻ như một giải pháp đơn giản cho vấn đề của bạn. –
@JesusZamora: Vấn đề là trước hết giá trị của sự tương đồng có thể là nổi (ví dụ 0.43), đó là lý do tại sao tôi đã nói về "sự so sánh mờ". Vấn đề thứ hai là việc đếm giá trị tương tự này khá là phức tạp và tôi không biết phương pháp này sẽ tối ưu hơn. –