2012-07-05 2 views
0

관리자 모듈과 사용자 모듈을 사용하여 데이터베이스 기반 웹 응용 프로그램을 구축하고 있습니다. 관리자 모듈을 사용하면 관리자가 데이터베이스에 저장된 엔티티의 속성을 수정할 수 있습니다. 사용자 모듈은 데이터베이스의 상태에 따라 동적으로 생성 된 양식을 제공합니다.동적 양식 검증 관리자 충돌

는 다음과 같은 사용 사례 고려해

  1. 이 사용자는 제시된 양식 옵션이 특정 기준을 충족 DB 엔티티를 표현 양식을 포함하는 웹 페이지를 요청을
  2. 동적으로 생성 된 폼이로드를 포함하는 요청 된 페이지 .
  3. 관리자가 양식에로드 된 일부 엔티티를 변경하여 양식에 표시 할 기준을 더 이상 충족시키지 못합니다 (즉, 비활성화, 연관 해제 됨)
  4. 사용자가 하나 이상의 엔티티 선택한 양식에 표시 할 기준을 더 이상 충족하지 않습니다.

제출 된 양식의 서버 측 유효성 검증이이 시나리오에서 통과 또는 실패해야합니까?

이해야하는 경우 ... 사용자는 올바른 양식을 제공하지 않았다하지만 사용자가 페이지에있는 동안 게시 된 형태의 콘텐츠로 인해 관리 변화에 DB의 현재 상태와 관련하여 더 이상 유효 (데이터베이스 히스토리를 활용하거나 세션을 사용하여) 페이지가로드 될 때 데이터베이스의 상태에 대해 데이터의 유효성을 검사해야합니까, 아니면 잔인한 것인가하는 대신 게시 된 엔티티가 유효하지만 반드시 만날 필요는 없습니다. 현재 양식 기준?

답변

0

db 속성을 변경하지 않는 것이 좋습니다. db 속성을 변경하면 웹 응용 프로그램에 오류가 발생합니다. 양식 값을 가져 와서 데이터베이스에서 표시하는 admin 양식을 작성하십시오. 이런 식으로 db에 포함 된 값만 admin에 의해 수정됩니다. 이 메서드를 사용하면 db 속성이 그대로 유지됩니다. 관리자에게 db에 직접 액세스하지 않도록하십시오.

+0

나는 귀하의 제안이나 그것이 내 질문과 어떤 관련이 있는지 잘 모르겠습니다. 내가 불분명하다면 미안해. 관리자가 db 속성을 변경한다고 말했을 때 관리자가 테이블 구조 나 스키마를 변경하는 대신 값을 변경하거나 행을 삽입/업데이트한다는 의미는 아닙니다. – ace25

+0

내 주요 문제는 부실 데이터가 포함 된 게시 된 양식을 어떻게 처리해야합니까? 관리자가 사용자가 이미로드하고 작성했지만 아직 게시하지 않은 동적 양식을 표시하는 데 사용 된 관리 인터페이스를 통해 데이터베이스의 특정 값을 수정했기 때문에 데이터가 오래되지 않았습니다. 데이터가 게시 될 때 유효하거나 유효하지 않은 것으로 간주해야합니까? 그러한 시나리오가 일반적으로 다루어 지거나 회피되는 방법에 대한 아이디어가 있습니까? – ace25

0

처리 방법은 손실 된 업데이트 문제이므로 "손실 된 업데이트"문제를 처리하는 방법과 유사해야합니다. 두 사람이 한 번에 행을 수정하여 변경 사항이 유지되고 변경 사항이 손실됩니다. 첫 번째 녀석의 변화가 지속되고 두 번째 녀석에게 업데이트가 실패했다는 통보가 표준 방식입니다. 이 경우 관리자는 업데이트 할 첫 번째 사람입니다. 사용자가 읽을 수있는 첫 번째 사람이었을지라도. 따라서 유효성 검사가 실패하고 사용자에게 데이터가 오래되어 현재 데이터로 표시된다는 알림이 표시됩니다.

희망이 도움이됩니다.