验证删除的最佳实践是什么。
例如,我有桌子
单位和产品,每个产品都必须有一个单位,因为数据是相关的,如果您尝试从产品中的单位中删除数据,系统将抛出错误。
我的疑问是:
我让系统抛出错误并处理错误。
创建验证(例如,从产品表中选择,检查是否存在具有该单位的产品)
或者有更推荐的选择吗?
一般来说出于多种原因,最好避免使用异常进行流量控制。诸如创建堆栈跟踪之类的事情可能会很昂贵,执行写入事务比读取更昂贵(并且通常只能在主数据库上完成)。一般规则是,例外情况应该是例外情况,如果您可以合理地将它们预期为申请流程的一部分,那么您就应该这样做。
这是一个“经验法则”,根据您的应用程序,它可能真的不常见。如果您通常希望 API 的使用者了解该约束,并在删除之前“清理”,那么您可能可以将其保留为例外。如果尝试删除是正常过程,然后通过查看另一个表来对错误做出反应,那么您应该更加努力,不要让这成为一个错误。