很抱歉,这个问题可能已经被问过,但我找不到任何令人满意的答案,所以我在这里:
我有一个网络表单。用户可以在文本字段中输入公司名称。然后,使用此文本字段的内容来检查该公司是否已存在于数据库中,查询如下:
SELECT * FROM customers WHERE company_name='textfieldContent';
如果查询没有返回结果,则该公司将添加到数据库中。问题是,如果有些人以不同的方式写公司名称(例如“Company”和“Company Ltd.”)或写错字,则查询不会返回结果,最终我的数据库中会有几行引用相同的行公司。
有人知道如何防止这种情况吗?谢谢。
顺便说一句,该网站是使用 Struts2 开发的。
最佳答案
听起来您需要在 Web 表单中添加一些前端验证来缩小范围。您可以使用下拉选择来代替自由文本框,然后如果用户找不到公司名称,他们可以选择以自由文本形式添加该名称。
您可以编写一些代码来删除所有前缀和后缀,但您将面临一百万个边缘情况,最终维护起来会很痛苦。
关于java - 如何避免表单中的文本字段在数据库中出现重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879953/