클라우드에 데이터를 유지하는 데스크톱 응용 프로그램을 만들고 있습니다. 내가 가진 한 가지 우려는 응용 프로그램에서 항목을 편집하고 잠시 동안 데이터를 오래 쓸 수 없게 만드는 시작입니다. 두 사람이 동시에 같은 항목을 편집하려고 할 때도 이런 일이 발생할 수 있습니다. 편집을 마치고 데이터를 저장하려는 경우 현재 데이터베이스에있는 내용을 덮어 쓰거나 마지막 변경 후 편집을 시작했는지 확인하고 변경 사항을 취소하거나 위험에 대한 옵션을 제공해야합니다. 다른 사람의 변경 사항을 덮어 씁니다.
필드 is_locked
와 lock_timestamp
DB 테이블을 추가하는 것에 대해 생각했습니다 . 사용자가 항목을 편집하기 시작하면 행이 is_locked
true로 변경 되고 잠금 시간 소인이 현재 시간으로 설정됩니다. 그런 다음 잠금이 유지되는 시간이 약간 있습니다 (예 : 5 분). 다른 사람이 항목을 편집하려고하면 항목이 잠겨 있고 잠금이 자동으로 만료된다는 메시지가 나타납니다. 잠금을 편집하는 동안 사용자가 걸어 나가면 잠금이 비교적 짧은 시간 후에 자동으로 만료되고 잠금이 만료되면 사용자에게 잠금이 만료되었다는 경고가 표시되고 데이터를 새로 고친 후 편집을 다시 시작해야합니다.
오래된 데이터 덮어 쓰기를 방지하는 좋은 방법입니까? 과잉입니까 (단일 계정에서 여러 사람이 동시에 응용 프로그램을 사용할 것으로 기대하지는 않습니다).
(내가 가진 또 다른 관심사는 2 명의 사람들이 같은 물건에 대해 자물쇠를 얻는 것입니다. 그러나 그것이 내가 편안하게 경쟁 조건이라고 생각합니다.)