java - 如何避免表单中的文本字段在数据库中出现重复项

标签 java mysql sql forms

很抱歉,这个问题可能已经被问过,但我找不到任何令人满意的答案,所以我在这里:

我有一个网络表单。用户可以在文本字段中输入公司名称。然后,使用此文本字段的内容来检查该公司是否已存在于数据库中,查询如下:

SELECT * FROM customers WHERE company_name='textfieldContent';

如果查询没有返回结果,则该公司将添加到数据库中。问题是,如果有些人以不同的方式写公司名称(例如“Company”和“Company Ltd.”)或写错字,则查询不会返回结果,最终我的数据库中会有几行引用相同的行公司。

有人知道如何防止这种情况吗?谢谢。

顺便说一句,该网站是使用 Struts2 开发的。

最佳答案

听起来您需要在 Web 表单中添加一些前端验证来缩小范围。您可以使用下拉选择来代替自由文本框,然后如果用户找不到公司名称,他们可以选择以自由文本形式添加该名称。

您可以编写一些代码来删除所有前缀和后缀,但您将面临一百万个边缘情况,最终维护起来会很痛苦。

关于java - 如何避免表单中的文本字段在数据库中出现重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879953/

相关文章:

java - 将鼠标悬停在另一个单元格上时如何删除 JTable 单元格 bgColor?

java - 使用java比较图结构

java - 为什么在创建 FixedThreadPool 和 CachedThreadPool 时使用不同的 Queue?

mysql - 如何在Prisma中添加时间属性?

mysql - 检查用户在线状态

mysql - 没有的地方进行内连接

python - 在 Django 中获取查询对象的外键值

使用已知共享 key 的 java SSL 套接字

sql - 按字母数字顺序对 MySQL 列进行排序

mysql - 需要帮助构建 SQL SELECT 语句以获取 "top 10 x"