マッチングキーの選定

2つのシステムで顧客を照合するためのキー選定と比較検討

マッチングキーメールアドレス電話番号照合
読了時間: 7分

この記事について

2つのシステムで顧客を照合するには、両方に存在するユニークな情報を見つける必要があります。どの情報をマッチングキーとして使うべきか、各候補の比較と選定理由を解説します。

マッチングキーの候補

候補となる情報

メールアドレス
一意性高い
取得難易度容易
変更頻度低い
表記ゆれなし
電話番号
一意性やや高い
取得難易度容易
変更頻度やや高い
表記ゆれあり
氏名
一意性低い
取得難易度容易
変更頻度低い
表記ゆれあり
住所
一意性やや高い
取得難易度容易
変更頻度高い
表記ゆれ多い
生年月日
一意性低い
取得難易度やや難
変更頻度なし
表記ゆれなし

各候補の詳細分析

メールアドレス

採用度: ★★★(最も信頼性が高い) → プライマリキーとして採用

電話番号

採用度: ★★☆(サブキーとして有効) → メールが一致しない場合の補助として検討

氏名

採用度: ★☆☆(単独では不十分) → 補助情報としてのみ使用

住所

採用度: ★☆☆(補助情報として) → マッチングには使用せず、正規化して保存のみ

本プロジェクトの選定結果

プライマリキー: メールアドレス

一意性が高い
詳細同じメールを複数人が使うケースは稀
表記ゆれがない
詳細yamada@example.com は常に同じ(正規化は小文字化のみ)
両システムで必須にできる
詳細Shopify: 必須フィールド、POS: 設定で必須に
自動照合に適している
詳細完全一致で判定できる

フォールバック戦略

顧客がメールを変更していた
対応方法新規顧客として登録。後で顧客から申し出があれば手動マージ
複数のメールを使い分けている
対応方法それぞれ別の顧客として扱う。顧客が申告すれば統合
メールを持っていない
対応方法店舗専用会員として扱う。オンライン利用時にメール登録を案内

照合ロジックの設計

照合の流れ

メールアドレス取得

登録フォームからメールアドレスを取得

正規化

小文字に変換、前後の空白を除去

POS検索

正規化したメールでPOSの顧客を検索

結果判定

見つかれば既存顧客、見つからなければ新規

照合時の正規化

メールアドレスの正規化
入力

" Yamada@Example.COM "

前後の空白を除去

"Yamada@Example.COM"

小文字に変換

"yamada@example.com"

POS/Shopifyを照合

この値で検索

注意: シンプルな正規化のみ。Gmailの"+"記法などは考慮しない(yamada+shop@gmail.com は別アドレス扱い)

考慮すべきエッジケース

ケース1: 同一メールで複数のPOS顧客

原因: 過去の運用ミスで同じメールが複数登録されている

即時対応
詳細最初に見つかった顧客に紐付け
記録
詳細ログに警告を記録、管理者に通知
後続対応
詳細後で手動で統合
長期対策
詳細POSでメールアドレスの重複チェックを強化

ケース2: 家族で同じメールを使用

状況: 夫婦で同じメールアドレスを登録

基本動作
詳細同一顧客として扱われる(仕様)
案内
詳細登録時に「すでに登録されています」と表示
推奨
詳細別のメールで登録するよう促す
例外対応
詳細どうしても同じメールを使いたい場合は店舗で相談

ポリシー: 1メールアドレス = 1顧客

この設計がもたらす効果

確実性

  • メールアドレスという確実なキーで照合
  • 表記ゆれの心配がない
  • 自動化しやすい

シンプルさ

  • 複雑なマッチングロジックが不要
  • 運用ルールが明確
  • トラブル時の原因特定が容易

柔軟性

  • 自動でマッチしない場合は手動対応
  • 将来的に照合ロジックの追加も可能
  • 既存運用への影響が少ない

関連記事