2011-01-05 5 views
0

우리는 JDBC와 Oracle Database를 기반으로하는 실제 응용 프로그램을 가지고 있습니다. 응용 프로그램의 다른 인스턴스를 작성해야한다는 요구 사항이 있습니다. 새로 생성 된 응용 프로그램 인스턴스는 회사의 신뢰할 수있는 클라이언트 용으로 설계되었으며 동일한 응용 프로그램 서버에 액세스한다는 사실은 문제가되지 않습니다. 응용 프로그램의 다른 인스턴스를 배포두 개의 인스턴스 (하나 또는 두 개의 데이터베이스 인스턴스)로 응용 프로그램 포크?

  1. 과 별도의 데이터베이스를 만들 : 우리가 작업을 수행하는 방법을 세 가지 옵션을 가지고 있기 때문에

    그리고 여기에 우리의 의심의 여지가 발생한다. 모든 테이블은 우리가

이 일부에서 작업하는 예를 정의하는 다른 열을 것이다 -

  • 는 두 개의 별도의 데이터베이스
  • 응용 프로그램 및 "인스턴스"를 지원하는 데이터베이스 수정에 액세스하는 응용 프로그램을 수정 고려해야 할 요소 : 변경 노력, 유지 관리 용이성 (응용 프로그램과 데이터베이스 패치, 저장소에 저장, 두 가지 버전을 최신으로 유지해야 함)

    나는이 질문에 명확하고 분명한 대답은 없다는 것을 알고 있지만, 나는 당신의 의견을 듣고 싶다. 각 해결책의 장단점을보고 가장 중요하게 내가 볼 수없는 함정을 알고 싶다.

  • 답변

    1

    2 개의 인스턴스가 별도의 데이터 세트를 볼 수 있다면 가장 쉬운 방법은 2 개의 별개의 (동일한) DB 스키마를 만들고 첫 번째 스키마로 작업 할 첫 번째 인스턴스를 구성하고 두 번째 스키마로 작업 할 두 번째 인스턴스를 구성하는 것입니다.

    두 인스턴스가 동일한 데이터를 볼 경우 동일한 DB와 작동하도록 구성하면됩니다.

    어쨌든이 코드와 같이 바보 같은 요구 사항을 지원하도록 코드를 수정하지 마십시오. 그러한 요구 사항 중 하나를 받았다면 미래에 더 많은 것을 받게 될 것입니다 (저는 점쟁이가 아닙니다. 나는 단지 경험이 있습니다 ...). 아직 다른 배포 요구 사항을 얻을 때마다 응용 프로그램을 변경하려는 마지막 사항이라고 생각합니다.

    +0

    글쎄, 각 인스턴스에 대한 데이터는 완전히 별개이지만 사실 언젠가 우리는 인스턴스 간 액세스가 필요할 것입니다. 그러나 실제로 스키마가 아닌 데이터베이스를 사용하는 아이디어가 좋은 해결책이 될 수 있습니다. – starko

    +0

    @starko - 미래를 예측하려고하지 마십시오. "나중에"액세스해야하기 때문에 추가 작업을 수행하는 것은 코드베이스를 만드는 데 얼마나 복잡한지를 결정하는 위험한 방법입니다. 여기에 간단한 것을 붙여서 다른 DB 인스턴스를 만듭니다. 현실적으로 코드가 이미 올바르다면 다른 데이터 소스를 구성한다는 의미입니다. 이는 사소한 것이어야합니다. – rfeak

    관련 문제