2013-04-12 7 views
-1

일부 원시 입력 데이터를 취하여 일련의 최종 결과를 계산하는 애플리케이션을 개발 중입니다. 이 단계들 각각에서 가능한 사용자 입력 (예 : 가중치, 관련 행 선택 등)이 있습니다. 기본 분석을 설정했지만 내 목표는 다중 사용자 환경에서이를 배포하는 것입니다. 내가 원하지 않는 것은 한 사용자가 입력을 설정하고 다른 사용자가 일부 입력을 변경하도록하며 두 가지 모두 예상치 못한 결과를 얻는 것입니다.오라클 다중 사용자 애플리케이션 스테이징 테이블 - APEX

사용자가 응용 프로그램을 시작하면 세션을 시작할 때 서있는 모든 기본 데이터베이스 테이블의 복사본을 얻은 다음 모든 입력을 변경할 수 있습니다 (원시 데이터 추가 가능).), 분석을 실행하고 다른 모든 사용자의 출력과 분리 된 출력을 생성합니다. 이 출력은 Excel로 내보낼 수도 있고 추후에 꺼낼 수도 있습니다. 그런 다음 사용자가 실제 데이터베이스 테이블 (다른 모든 사용자에게 표시됨)에 작성한 변경 사항을 작성하려는 경우, 변경 사항의 일부 또는 전체를 확약 할 수 있습니다.

저는 오라클과 APEX 초보자이며 모든 문서와 서적을 읽었습니다. 손을 댈 수는 있지만이 문제에 대한 올바른 접근법이나 최소한의 관련 독서를 파악하는 데 도움이됩니다.

+1

스테이징 테이블에 'USERID' 컬럼을 추가하지 말고 apex 함수'V ('USER ')'로 채우고 필터링하십시오. –

+0

이것은 좋은 생각입니다. 출력에 관해서는 무엇을해야 할지를 알아야하지만, 이것에 대해서는 생각하지 않았습니다. 감사! – Will

+0

정말하고 싶습니까? "원본 테이블"에서 데이터를 복사 하시겠습니까? 이 테이블이 아주 큰 경우에는 어떨까요? 테이블에 100000 개의 행이 있고 10 명의 사용자가있는 경우 갑자기 최대 10 배의 데이터로 끝납니다. 실적을 염두에 두십시오. 오라클과 정점에 정말로 안성맞춤 인 사람이라면, 우선 그 정점 - 주로 정점에 대한 정보를 얻고 그것이 어떻게 작동하고 한계가 있는지 알아 보도록 권할 것입니다. Apex는 훌륭한 도구이며 많은 기능을 제공하지만 작업하는 제품에 솔루션을 적용하지 않으면 간단하게 고민 할 것입니다. – Tom

답변

0

APEX Collections를 사용해야한다고 생각합니다.

http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35127/apex_collection.htm

UPD :

당신은 정점 컬렉션을 찾아야합니다. 우선 : 사용자가 로그인 할 때 변경하려는 각 테이블에 대해 하나의 빈 정점 컬렉션을 만듭니다. 컬렉션 이름은 해당 테이블과 같은 이름이어야합니다. 수집 대응에 대한 자신의 전망이 테이블에 가입 tmp_tab 테이블에 대한 각 보고서에서 다음

create or replace view tmp_v as 
select 
    t.c001 as id 
, t.c002 as column1 
, t.c003 as column2 
from apex_collections t 
where collection_name = 'tmp_tab'; 

: 그런 다음처럼 보이는 각각의 콜렉션에 대한 뷰를 생성 할 수있다 (표 이름이 "tmp_tab"입니다하자). 보고서 코드는 다음과 같습니다.

그런 다음 사용자가 데이터를 편집 할 때 테이블에 저장하지 않고이 데이터를 컬렉션에 저장하십시오. 모든 변경이 완료된 후 사용자가 모든 사용자에 대해 데이터를 저장하려는 경우 데이터를 해당 컬렉션에서 테이블로 이동합니다. 이 방법이 가장 적합 할 것이며 데이터 모델을 변경하지 않아도됩니다.

+0

실수 하나 : 참여가 남아 있지 않습니다. 사용자가 방금 추가 한 새 행을 포함하려면 전체 외부 조인이 있어야합니다. – NoGotnu

관련 문제