データベースで重複する顧客の詳細を見つけるためのコードを書いています。レーベンシュタイン距離を使用します。
ただし、関係を保存する方法がわかりません。私はいつもデータベースを使用していますが、このような状況に遭遇したことはなく、誰かが私を正しい方向に向けることができるかどうか疑問に思いました。
私を混乱させるのは、関係の双方向性をどのように保存するかです。
以下にいくつかの例を示し始めましたが、このタイプのデータを保存するためのベストプラクティスがあるかどうか疑問に思いました。
サンプルデータ
ID、アドレス
001、5 Main Street
002、5 Main St.
003、5 Main Str 004、6
High Street
005、7 Low Street
006、7 Low St
提案1
customer_id1、customer_id2、relationship_strength
001、002、0.74
001、003、0.77
002、003、0.76
005、006、0.77
このアプローチは、customer_id1とcustomer_id2の間の一方通行の関係を推測するため、満足できません。もちろん、すべての関係を両方の方法で含めない限り、処理時間とテーブルのサイズが2倍になります。
たとえば、次のものを含める必要があります:002、001、0.74
提案2
customer_id、grouping_id
001、1
002、1
003、1
005、2
006、2