2016-06-06 4 views
0

다른 그룹에 속한 사용자가 양식을 작성하고 제출하는 웹 응용 프로그램을 개발 중입니다. 시나리오는 그룹 G에 속한 사용자 A, B 및 C입니다. 사용자 A는 앱에 로그인하고 양식을 채우고 (예 : 연령 = 30), 제출하고 로그 아웃합니다. 이제 사용자 B는 앱에 로그인하고 동일한 양식 (예 : 연령 = 35)을 열고 양식을 편집하여 저장합니다. 이제 사용자 C는 동일한 작업을 수행합니다 (예 : 연령 = 40). 다른 사용자가 양식을 열면 나이가 40으로 표시됩니다 (최신 레코드 임).LOG 또는 거래 내역에 대한 제안 제안

질문 관리자는 앱에 로그인하면 거래 또는 로그의 모든 기록을 볼 수 있어야합니다. 모든 변경 사항이 데이터베이스에 기록되는 설계 방식을 제안 해주십시오. Spring이나 Hibernate와 같은 프레임 워크가 있습니까? 데이터베이스 디자인에 대한 모든 정보도 도움이 될 것입니다.

SQL Server에서 Struts와 일반 JDBC를 사용하고 있습니다.

답변

0

여러 가지 방법으로 접근 할 수 있습니다.

  1. Log4j 로깅. 패턴을 동의하고 로그 파일에 업데이트를 기록하십시오. 로그 파일을 인덱싱 할 수있는 sumologic 또는 splunk 또는 Kibana와 같은 도구가 있습니다. 그러나 이러한 솔루션은 로깅을 영원히 유지할 수 없습니다. 일반적으로 3 개월 데이터를 유지하도록 설계 할 수 있습니다. 핵심 단어를 쿼리하면 밀리 초 단위로 결과를 얻을 수 있습니다!
    1. 최대 절전 모드를 사용하는 경우에는 envers라는 항목이 있습니다. 수정하기 전에 최신 db 행을 감사 테이블에 기록하십시오. 하지만 당신은 최대 절전 모드에 있어야합니다.
    2. db 트리거를 사용하십시오. 업데이트 트리거 (atleast mysql)에서는 변경된 열을 제공하고이를 기록 할 수 있습니다. 유일한 문제는 작업을 수행 한 사용자를 캡처하는 것입니다.이 사용자는 mysql 연결에 '임시 변수'로 보낼 수 있습니다. 그러나 DBA는 트리거에 대해 알릴 때 울지 만 (이유는 무엇입니까?) 나는 대답을 알지 못합니다.