0

问题概述:

  • 我的申请有一个报名表。
  • 用户有将同一个人两次输入系统的习惯。
  • 我需要找到一种方法来快速准确地对照数据库中的其他客户端检查他们输入的数据,以查看该客户端是否已经在数据库中。

当前使用的标准:

  • SSN 重复
  • 重复的姓氏和出生日期
  • 重复的名字、出生日期和部分 SSN 匹配(另一个客户有一个 SSN,其中 9 位数字中的 5 位相同且位置相同
  • 重复的名字和部分 SSN 匹配(另一个客户端有一个 SSN,其中 9 位数字中的 5 位相同且位置相同
  • 重复的姓氏和部分 SSN 匹配(另一个客户端的 SSN 的 9 位数字中有 5 位相同且位置相同

除了这些检查之外,还讨论了使用 soundex 来检测基于相似名字/姓氏的匹配。

是否已经设计了一个 PHP 类来处理这样的事情?这样的事情可以在(Mysql)数据库级别完成吗?

说明:

  • 问题的存在不是因为数据库级别缺乏数据完整性,而是因为在输入过程中造成的拼写错误。该应用程序是一个数据输入应用程序。用户正在获取表单的物理纸质副本并将数据输入应用程序。
4

2 回答 2

1

不是php解决方案,而是

您可以将数据库中的字段转换为unique.

ALTER TABLE  `users` ADD UNIQUE (
    `username`
)
于 2012-03-30T15:06:28.857 回答
1

如果我正确理解您的问题,关键是您要过滤掉的重复项不一定与字符串相等。过去我遇到过几次这样的情况,但我永远找不到查找逻辑重复的完美标准。在我看来,处理这种情况的最好方法是为用户提供一个非常智能的类似自动完成的功能,所以当他尝试输入数据时,他会看到所有相似的条目,并且希望不会为他在列表中看到的东西。这样的解决方案可以成为您尚不完美的标准的好“伙伴”。

于 2012-03-30T15:18:53.470 回答