约束&软删除冲突
本咸鱼对数据库方面研究甚少。能存数据就没多考虑其他问题。尤其是在设计方面。都是按照接口或者业务推到一下就好了。 这次考虑一个问题,学习了一个小问题的处理。 就是标题所述 约束与软删除的冲突。
场景问题例子:
一表单 字段为:
|:–| | id | | name | |… | | u_number | | deleted_at |
考虑 u_number
唯一问题,添加 约束 UNIQUE
。
u_number
是可复用的一些唯一数据。
那么问题来了:
当操作软删除时候,deleted_at (类型 datetime
) 填充删除时间后,我理想化数据已经被删除。当 u_number
被其他用户使用插入此表结果是失败的。
解决方式
u_number
因为唯一,导致后续使用此前删除的数据是不可行的,如果直接删前者数据也是不太有B格,不科学的事情。
通过 联合的约束来完善此事,deleted_at
正好是时间, 与其联合使用即解决此事。
约束不再是单一约束 u_number
修改成 u_number,deleted_at
。
-OK,完结。-