提问人:Matheus Arruda 提问时间:11/18/2023 更新时间:11/18/2023 访问量:17
数据删除外键验证最佳实践
Data Deletion Foreign Key Validation Best Practice
问:
关于验证删除的最佳做法是什么?
例如,我有表
单位和产品,每个产品都必须有一个单位,因为数据是相关的,如果您尝试从产品中的单位中删除数据,系统将抛出错误。
我的疑问是:
我让系统抛出错误并处理错误。
创建验证(例如,从产品表中选择,检查是否有具有该单位的产品)
还是有更推荐的选项?
答:
0赞
Rob Conklin
11/18/2023
#1
通常,出于多种原因,最好避免使用异常进行流控制。创建堆栈跟踪之类的事情可能很昂贵,执行写入事务比读取事务更昂贵(并且通常只能在主服务器上完成)。一般规则是,例外应该是例外的,如果可以合理地预测它们作为应用程序流的一部分,则应将其作为例外。
这是一个“经验法则”,根据您的应用,它可能非常罕见。如果您通常希望 API 的使用者知道约束,并在删除之前“清理”,那么您可以将其保留为例外。如果尝试删除错误,然后通过查看另一个表来对错误做出反应是正常过程,那么您应该更加努力地避免出现错误。
评论