2014-10-06 4 views
0

CRUD 웹 앱에 실행 취소 기능을 구현하기위한 표준 방법이 있습니까?webapp에서 작업을 실행 취소하는 방법은 무엇입니까?

나는 사용자가 로그인하여 다양한 복잡성의 모델을 변경하고 페이지 사이를 탐색하는 기본 CMS를 가지고 있습니다.

+0

정말 표준이 없습니다. 이러한 작업을 "실행 취소"할 수있을만큼 충분한 정보로 수행 된 작업에 대한 기록을 유지해야합니다. – David

답변

0

표준 방법은 없습니다. TGH에서 언급했듯이 웹 애플리케이션은 일반적으로 무국적입니다.

두 가지 병렬 모델을 유지하는 것입니다. 하나는 실시간 버전이고 다른 하나는 기록입니다. 당신이 "포스트"관계가 경우에 따라서, 예를 들어, 그 같은 같습니다 추가 할 수

post 
    attributes 
    author 
    title  Text 
    body  Text 
    timestamp TimestampTZ 
    conditions 
    pk (author, title) 
    fk author 

를 다른 같은이 될 게시물의 역사를 추적하고,하지 않을

post_history 
    attributes 
    revision Serial (per post) 
    author 
    title 
    body  Text 
    timestamp TimestampTZ 
    conditions 
    pk (revision, author, title) 
    fk post 

사용자가 버전을 실행 취소하지 않는 한 표시됩니다.

이 모델은 거의 모든 데이터 (개인 이름, 번역 문자열, 계정 레코드 등)에 적용 할 수 있지만 관계 정의의 수정을 유지할 때는 복잡 할 수 있습니다 (예 : 어떤 작업자가 어떤 차를 운전했는지, 또는 조직의 명단 할당 변경 등의 다른 관계로의 링크).

이 유형의 롤백 또는 실행 취소 시스템을 구현하기 위해 데이터를 디자인하는 방법에 신중해야하지만, 확실히 수행 할 수 있습니다. 이 기능을 기능으로 구현하려는 노력이 가치있는 것인지 먼저 물어보십시오. 일반적으로 대답은 "예"이지만 A 또는 B의 경우에만 있지만 전체 시스템에는 해당되지 않습니다.

웹 응용 프로그램은 여전히 ​​상태가 유지되지 않지만, 이제는 자신의 신중한 시간 슬라이스로 이벤트를 기반으로 한 기록 레코드가 있습니다.

1

아니요. 사용자 정의 구현이 아니어야합니다. 웹 응용 프로그램은 상태 비 저장이며 기본적으로 "기본"실행 취소에 필요한 상태 양식을 관리하지 않습니다. 도메인에 맞는 방식으로 프로그램을 작성해야합니다.

관련 문제