解决约束&软删除冲突

约束&软删除冲突

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

场景问题例子:

一表单 字段为:

|:–|
| 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,完结。-

请我吃辣条吧?!