解决约束与软删除冲突

约束&软删除冲突

本咸鱼对数据库方面研究甚少。能存数据就没多考虑其他问题。尤其是在设计方面。都是按照接口或者业务推到一下就好了。 这次考虑一个问题,学习了一个小问题的处理。 就是标题所述 约束与软删除的冲突。

场景问题例子:

一表单 字段为:

|:–| | id | | name | |… | | u_number | | deleted_at |

考虑 u_number 唯一问题,添加 约束 UNIQUEu_number 是可复用的一些唯一数据。

那么问题来了:

当操作软删除时候,deleted_at (类型 datetime) 填充删除时间后,我理想化数据已经被删除。当 u_number 被其他用户使用插入此表结果是失败的。

解决方式

u_number 因为唯一,导致后续使用此前删除的数据是不可行的,如果直接删前者数据也是不太有B格,不科学的事情。 通过 联合的约束来完善此事,deleted_at 正好是时间, 与其联合使用即解决此事。

约束不再是单一约束 u_number 修改成 u_number,deleted_at

-OK,完结。-