我的同事在管理数据库客户时遇到了问题。问题是订单何时需要将客户需要添加到数据库中。但是,如果客户存在,我们不希望制作重复的客户,我们希望保留同一客户,只需添加到他们的销售历史记录中。他很难弄清楚如何充分证明这一点。员工有时会进入销售,有时可能会输入与以前不完全相同的信息,因此当他的系统检查客户是否已经存在时,它认为它是新客户,而实际上客户已经存在,但信息是稍微输入的不同。
有没有人对如何解决这个问题有任何想法?
感谢。
答案 0 :(得分:2)
在订单完成流程中添加一个步骤。此步骤应对客户记录进行模糊搜索,以查看是否可以找到客户的完全匹配或部分匹配。
如果发现某些内容已关闭,请显示记录并要求用户选择一个或继续创建新记录。
显然,您不希望向最终客户公开。相反,只要询问他们之前是否已订购并输入他们的登录信息。
答案 1 :(得分:1)
由于输入的数据相似但不完全相同,您希望先进行Fuzzy logic搜索,如果没有找到结果,请插入新客户。
答案 2 :(得分:1)
如果可能,请让用户登录。
这样可以省去搜索类似客户的麻烦,而且用户不必多次输入他们的地址。
答案 3 :(得分:0)
避免重复数据输入是一个常见问题,可以通过多种方式处理。我要关注的关键是任何成功的解决方案对于数据输入人员来说必须更容易,否则就不会被遵循(例如告诉DP检查客户是否已经存在不起作用,因为他们需要做更多的工作)。关闭袖口,我可以想到解决这个问题的几种方法。
第一个解决方案是基于密钥的;检查具有不同输入概率的独特信息。我见过的最常见的情况是电子邮件地址缩小为小写文本。下一个常见的是电话号码(虽然更常见的是整个办公室或家庭都有一个电话号码)。如果电子邮件地址存在,则客户必须存在,因此用户无法将其添加为新客户,而是根据与该客户关联的数据自动填写表单。用户喜欢这样,因为他们只需键入一个数据,其余的就会自动填写。
第二个解决方案可以补充第一个解决方案,它基于自动完成(http://en.wikipedia.org/wiki/Autocomplete);当用户为客户输入数据时,您的应用程序会为与输入内容匹配的现有客户数据提供自动完成功能。这提高了用户选择现有记录而不是输入所有新数据的可能性。例如,这允许有人输入'john sm'并且看到'john smith,john smart,john smuck等'。填写的每个字段缩小了后续字段的自动完成选择(例如,在波士顿,马萨诸塞州只有这么多的约翰史密斯......)。像这样的用户,因为它再次减少了他们必须做的工作量。
之前在另一个回复中触及的第三个解决方案是进行模糊搜索。实施起来有点棘手,但非常强大。许多流行的企业搜索引擎(例如Autonomy,FAST,Verity等)都做得非常好。但聪明的程序员也可以实施内部解决方案。关键点包括用例不敏感搜索(因此搜索Lafleur将匹配LaFleur)或使用SoundEx(因此搜索John将匹配Jon)有关详细信息,请参阅http://en.wikipedia.org/wiki/Soundex。
祝你好运,瑞克