验证 table 中记录的最佳方式

Best way to validate records in table

我必须编写一个存储过程来验证客户名称。

有一个案例,客户的姓氏“Miller”被插入到每条记录中。所以我必须创建一个存储过程来确保是否再次发生。此存储过程将捕获此问题并提出问题。

如果可能的话,我不确定如何处理这个问题。有什么想法吗?

通常对于这样的验证,您会寻找您认为有问题的模式,例如,First_name 和姓氏相同,名字只有一个字符(首字母)等。

但请注意,这些应该只用于标记 review/potential 更新,而不是自动 denial/removal。比如,我认识一个叫'Joy Joy'的人(结婚的时候,不幸的是,他们的姓氏与他们的名字相符)。

所以从根本上说,您需要确定要查找的模式,然后将它们编码到存储过程中。没有固定的流程可以帮助您。

理想情况下,存储过程将用于帮助识别问题 - 然后将有用的模式传输到面向客户的代码以在进入数据库之前验证数据。

最好的方法是清理旧数据并在名称列上添加 CHECK 约束。作为一种解决方法,您可以使用触发器,但它通常性能较低。如果您的 DBMS 支持此功能,另一种解决旧名称的方法是添加计算列,您将在其中仅显示“新”名称或好的“旧”名称,并在该列上添加 CHECK 约束。

但是名称验证是不真实的,有意strange examples