데이터베이스 응용 프로그램을 위해 재활용 빈을 어떻게 만들 수 있습니까?
-
20-09-2019 - |
문제
데이터베이스 애플리케이션이 있는데, 사용자가 데이터베이스에서 삭제 된 레코드를 복원 할 수있게하고 싶습니다. Windows에서는 같은 작업을 수행하려는 파일에 대한 재활용 빈이 있지만 데이터베이스 레코드에 대해 관련 테이블이 많다고 가정합니다. 필드가 많습니다.
편집하다:
다음 구조가 있다고 가정 해 봅시다.
보고서 테이블
- repname 기본 키
- 보고서 데이터
사용자 테이블
- ID 기본 키
- 이름
사용자 보고서 테이블
- repname 기본 키
- userID 기본 키
- isdeleted
이제 isdeleted 필드를 사용자 보고서 테이블에 넣으면 삭제 된 것으로 표시된 경우 사용자가 다시 레코드를 추가 할 수 없습니다. 레코드가 이미 있고 이로 인해 복제가 발생하기 때문입니다.
해결책
참고 : 나는 항상 대리 기본 키를 사용합니다.
타임 스탬프 'deleted_at'열을 추가하십시오. 사용자가 항목을 삭제하면 현재 시간을 넣습니다. 이 핵심 부분을 제약 조건으로 만드십시오.
모든 쿼리에서 deleted_at 필드에 null이있는 레코드 만 검색해야합니다.
일부 프레임 워크 (ActiveRecord와 같은)는해야 할 일이 아닙니다.
제휴하지 않습니다 StackOverflow