People (名前、姓、住所、SSN など) のテーブルがあるとします。
指定された人物 A に「非常に似ている」すべての行を検索したいと考えています。A とテーブル People のすべての行のある種のファジー論理比較を実装したいと考えています。複数の列で個別に機能するいくつかのファジー推論ルールがあります (例: 名前に関する 3 つのファジー ルール、姓に関する 2 つのルール、住所に関する 5 つのルール)。
問題は、次の 2 つのアプローチのどちらが優れているか、またその理由は何ですか?
すべてのファジー ルールをストアド プロシージャとして実装し、1 つの重い SELECT ステートメントを使用して、A に「非常に似ている」すべての行を返します。このアプローチには、soundex、sim メトリックなどの使用が含まれる場合があります。
A に "かなり似ている" 精度の低い結果を返す 1 つ以上の単純な SELECT ステートメントを実装し、A を (データベース外の) 返されたすべての行とあいまい比較して、"非常に似た" 行を取得します。そのため、あいまい比較は私のお気に入りのプログラミング言語で実装されます。
Table People には最大 50 万行が必要で、このようなクエリを 1 日に約 500 ~ 1000 回行いたいと考えています。私は MySQL を使用しています (ただし、これはまだ考慮されていません)。