刚来公司时看到不少表都有一个valid_code字段,最开始还不懂是什么含义,问了同事才明白。数据库
好比一张业务表有id,code,外键code,state,valid_code。state有两个状态表示数据是否存在,删除就是修改这个字段。ui
valid_code咱们的规则是若是是有效数据咱们设为0,若是删除这条数据咱们须要将valid_code置为一个随机数也好uuid也好都行。code
咱们的背景是这张业务表只会关联这个外键所关联的实体的一次记录,而且用的是伪删除逻辑,经过改变state状态标志数据的删除或存在。索引
需求是须要控制这张表的插入操做的幂等性,。随机数
valid_code正是经过数据库的惟一索引机制来控制的,咱们将外键code和valid_code构建一条惟一索引,这样就能保证若是valid_code相同,就只有一个关联的外键实体。数据