게시판 글 동시수정 불가능하게 하는방법 좀 알려주세요.

게시판 글 동시수정 불가능하게 하는방법 좀 알려주세요.

QA

게시판 글 동시수정 불가능하게 하는방법 좀 알려주세요.

본문

게시판의 게시글을 A라는 사람이 수정을 하고 있을때
B라는 사람이 수정 버튼을 누르면
"다른사람이 수정하고 있습니다." 라는 메세지를 띄울수 있을까요?

수치가 들어가는 문서를 여러사람이 수정하는데
동시에 수정하면 데이타 값이 엉킬것 같아서요...ㅠㅠ

혹시 접근을 못하게 하는 방법 말고 방법이 있을까요?

고수님들의 하해와 같은 조언 부탁드립니다...꾸벅

이 질문에 댓글 쓰기 :

답변 3

다른 변수가 있을 수 있지만.. 생각나는대로 말씀드리겠습니다.

일단 컬럼 3개 추가  상태컬럼, 수정자, 상태업데이트 시간

1. A가 게시물의 수정버튼클릭(수정페이지 진입시 컬럼업데이트(상태[수정 중],수정자[A], 시간 업데이트 ))

-수정 모드시 1분 또는 수분 단위로 ajax를 이용하여 컬럼업데이트(상태[수정 중],수정자[A], 시간 업데이트 ))

2. B가 수정 시도시  컬럼정보(컬럼업데이트(상태[수정 중],수정자[A], 시간 업데이트 ))를 이요하여 차단

-상태가 수정중인데 상태업데이트가 1분이상(이론상 1분이지만 프로그램단에서는 10분이상으로 하는 거이) 경과한 경우   수정중 문제(사용자 세션 만료, 네트웍 오류등)가 생긴걸로 판단 수정 진입가능

3. 최종 업데이트시 다시한번 누군가 수정중인지 체크..

세션이나 db를 활용해서 수정을 체크하고 수정자가 있으면 접속을 불가하게
그리고 수정을 완료하였거나 수정 도 중  브라우저를 종료하였을때 등의 처리를 해주시면 됩니다.
개념은 이러하지만,

사이트 구조에 따라 소스는 달라질 수 있으므로

소스자체는 직접 구현하셔야 할 듯 하네요.

DB를 이용하게 되면 정상적인 사용방법으로 사용시에는 문제가 없지만, 진행 중간에 창을 닫아버리거나 인터넷이 끊어져 버리거나 하는 여러가지 변수가 발생하게되면 오작동 우려가 있습니다. (볼피드님 말씀대로 브라우저 종료 처리가 중요합니다)

 

mysql lock을 이용하는 방법도 있습니다. 참고하세요.

https://backdoosaan.tistory.com/58

https://blog.appkr.dev/cheatsheet/understanding-mysql-db-lock/

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT