0

問題の概要:

  • 私のアプリケーションには登録フォームがあります。
  • ユーザーは、同じ人をシステムに 2 回入力する習慣があります。
  • 彼らが入力したデータをデータベース内の他のクライアントに対して迅速かつ正確にチェックして、そのクライアントが既にデータベース内にあるかどうかを確認する方法を見つける必要があります。

現在使用されている基準:

  • 重複した社会保障番号
  • 姓と生年月日の重複
  • 重複する名、生年月日、部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。
  • 重複する名と部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。
  • 重複する姓と部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。

これらのチェックに加えて、 soundexを使用して類似の姓名に基づいて一致を検出することについての議論がありました。

このようなものを処理するように設計された PHP クラスは既にありますか? (Mysql) データベース レベルでこのようなことを行うことはできますか?

説明:

  • この問題は、データベース レベルでのデータの整合性の欠如が原因ではなく、入力プロセス中に発生したタイプミスが原因で発生します。アプリケーションはデータ入力アプリケーションです。ユーザーはフォームの物理的な紙のコピーを取り、データをアプリケーションに入力しています。
4

2 に答える 2

1

私があなたの問題を正しく理解しているなら、要点は、あなたが除外したい重複が必ずしも文字列と同じではないということです。私は過去にこのような状況に数回遭遇しましたが、論理的な重複を見つけるための完璧な基準を見つけることはできませんでした。私の意見では、このような場合に対処する最善の方法は、非常にスマートなオートコンプリートのような機能をユーザーに提供することです。そのため、ユーザーがデータを入力しようとすると、類似したすべてのエントリが表示され、新しいエントリを作成しないことを願っています。彼がリストに表示しているもの。そのような魂は、まだ完璧ではない基準の良い「相棒」になる可能性があります。

于 2012-03-30T15:18:53.470 に答える
1

PHPソリューションではありませんが、

データベース内のそのフィールドを としてキャストできますunique

ALTER TABLE  `users` ADD UNIQUE (
    `username`
)
于 2012-03-30T15:06:28.857 に答える