在游戲服務器開發時,考慮到數據更新的性能問題,好多數據都不使用外鍵約束,每張表采用異步更新的方式,追求最級的一致性,但是這樣做會導致數據的完整性受到影響,比如在游戲中,花了500鉆石買了一個裝備,鉆石扣了,這時系統掛了,導致裝備沒有給我,這就讓人受不了,只能通過客服手動找回。
還有種自動的解決方法,就是給每次數據同步更新添加一個版本號,每次所有數據都更新完了,版本加一,這個版本號對于單個用戶來說是唯一的,數據的使用也依賴于版本號。每個用戶的數據當前使用的是哪一個版本,由版本號表決定,這個表是一個用戶id對應一個版本號,每次數據全部更新成功就把這個版本號加一,這樣就能保證使用數據時所有的數據都是同一個版本且是一致的