2011-07-26 4 views
0

상황은 이와 같습니다. 우리는 많은 수의 필드 (여러 탭 위에 30 개가 넘는 스프레드)가있는 폼을 가지고 있으며, 저장하기 전에 어떤 값이 변경되었는지를 성능에 최소한의 영향으로 확인하고 싶습니다. 지금 당장 일어나는 일은 편집을 위해 여러 데이터베이스에서 단일 레코드를 쿼리하는 것입니다. 값은 값 개체로 클라이언트 측에 전달됩니다. 현재 그들은 양식의 모든 필드에 구속되지 않습니다.저장하기 전에 양식의 어떤 값이 변경되었는지 어떻게 확인합니까?

초기 아이디어는 각 필드가 변경 될 때마다 true 또는 false로 설정하는 부울 플래그를 갖는 것이 었습니다. 저장시 프로그램은 플래그 목록을 통해 어떤 필드가 변경되었는지 확인합니다. 이것은 내게 조금 어색한 것 같아서 아마 서버 측에서 할 수 있을지도 모른다. 그러나 각 필드를 하나씩 확인하여 DB 레코드와 일치하지 않는 것을 확인하고 싶지는 않습니다.

여기에 무엇에 관한 아이디어가 있습니까?

답변

0

많은 Flex 어플리케이션에서 매우 일반적으로 발생하는 문제입니다. 너무 자주 발생하기 때문에 데이터 관리를위한 여러 가지 상용 구현이 있습니다. 쿼리는 엔티티에 저장되고 해당 엔티티는 클라이언트 측의 양식에 바인딩됩니다. 필드가 업데이트 될 때마다 변경 사항을 db에 유지하고 요청시 롤백을 수행하는 단계를 자동으로 수행합니다. 당신은 자바 환경 WebOrb를 다루고있는 경우 - -

어도비 LCDS 데이터 관리는 처리하는 경우 .NET은, PHP는, 자바, 당신은 바퀴와 롤을 다시 발명 할 수 물론

환경을 레일 독자적으로, 각 필드의 PropertyChangeEvent 청취자를 설정합니다. 변경 사항이 전달되면이를 수신하고 각각에 대한 핸들러를 작성하십시오.

0

이것은 내가 고객을 위해 일하고있는 프로젝트 중 하나와 정확히 같은 것 같습니다.

우리가 할 일은 일단 값 객체를 UI로 되돌려 놓는 것입니다. 그런 다음 업데이트 서비스를 호출 할 때 원본 개체와 새 개체를 모두 보냅니다. 서비스에서 필자는 데이터베이스에서 어떤 값을 전송해야하는지 결정하기 위해 서버에서 필드를 비교합니다.

모든 필드/속성을 조건부로 변경했는지 여부에 따라 조건부로 업데이트해야하는 경우; 그러면 모든 필드/속성에 대한 검사를 피할 수있는 방법은 없습니다. 부울 아이디어를 구현하고 변경 될 때마다 UI에서 플래그를 스왑하더라도, 무엇을 업데이트해야하는지 결정하기 위해 쿼리를 작성할 때 여전히 부울 값을 확인해야합니다.

내 경우에는 UI로 다시 전송되는 값 개체를 만들기 위해 세 가지 데이터베이스가 쿼리됩니다. 필드 업데이트는 해당 데이터베이스 중 하나에 저장되고 선택을 수행 할 때 우선 순위가 부여됩니다. 따라서 저장 프로 시저 내에서 필드 비교로 명시적인 필드가 발생했습니다.

필드 별 비교가 아니라 "레코드 별 레코드"비교가 필요한 경우; Record/Value Object가 변경되었음을 알리는 불리언 방식을 사용하면 시간과 코딩을 절약 할 수 있습니다.

관련 문제