在应用程序级别处理具有唯一键约束的表上的数据插入/更新的最佳实践是什么?这些是我想出的:
1、在插入数据之前对表进行查询,看是否会违反约束。
优点
- 您拥有完全控制权,因此您不必处理任何特定于 DBMS 的错误消息。
- 额外的数据完整性检查层
缺点
- 由于大多数时候不会违反约束,因此可能会影响性能。
- 在运行重复数据查询时,您需要锁定表。
2.什么都不做。更新表格,看看有什么问题。
优点
- 简单的!
- 总体速度更快,因为您不必在每次更新表时都运行额外的查询。
缺点
- 您的验证例程取决于数据库层。
- 如果数据不粘,您必须通过堆栈跟踪来查找原因。
哪一个是更广泛接受的解决方案?这些有替代品吗?
我正在使用 Java、JPA、Hibernate 和 Spring BTW。欢迎任何建议,甚至是特定于框架的建议!
谢谢!