우리는 다음과 같은 문제가 있습니다. 우리의 엔터프라이즈 애플리케이션은 MySQL에 데이터베이스를 가지고 있으며, 구조가 너무 복잡 해져서 100 개가 넘는 테이블 (현재 7 년 동안 개발 중)이 어디에있는 것처럼 보입니다.데이터베이스 기능 분해 패턴?
그러나 대부분의 테이블은 다른 테이블과 전혀 관계가 없습니다. 모든 사람 (약 20 개의 테이블)이 사용하는 공통 테이블 (사전)이 있지만 그게 전부입니다. 이 데이터베이스를보다 빠르고 안정적으로 만드는 방법에 대한 의문이 제기되었습니다.
데이터베이스 분해에 대해 많이 읽었습니다. 즉, 다른 도메인에 관련된 테이블을 다른 데이터베이스에 배치합니다. 예를 들어, 운송장 및 기타 종이와 관련된 것은 종이라고 불리는 데이터베이스에 저장되고 고객 및 주문과 관련된 모든 것은 클라이언트라고하는 데이터베이스에 저장됩니다.
- 사용자는 단일 도메인에 작용하는 등의 엔터프라이즈 응용 프로그램을 볼 수 :
여기서 우리는 두 가지 문제가있다. 개발자는 여러 가지 데이터베이스를 처리 할 수 있도록 데이터베이스와 관련된 핵심 작업을 변경해야합니다.
- 공통 테이블에 문제가 발생합니다. 단일 데이터베이스에 보관해야하며 분해 후 모든 데이터베이스에서 복제 할 수 없습니다. 따라서, 우리는 어떻게 질의를 만들 수 있습니까? SELECT * FROM A JOIN B, 거기 A와 B는 서로 다른 데이터베이스 (다른 서버)에 있습니까?
이 두 가지 질문은 실제로 동일한 문제를 해결합니다.이 문제를 해결하기위한 일반적인 엔터프라이즈 패턴 (예 : GoF)이 있습니까? 특히 Java EE에 적합한 패턴에 관심이 있습니다.