剛來公司時看到不少表都有一個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相同,就只有一個關聯的外鍵實體。數據