2010-07-23 6 views
1

아주 오래된 Perl 프로젝트를 다시 작성하고 있습니다. 직원 성과 평가를위한이 프로젝트. 매년 직원은 상사가 평가합니다.약간 다른 구조의 다중 데이터베이스에 관한 디자인 패턴 질문

프로젝트는 mysql을 사용하여 1994 년에 처음 사용되었습니다. 1995 년에 새로운 MySQL 데이터베이스가 1995 년 평가를 위해 만들어졌고 소스 코드가 수정되었습니다. 그렇다면 1996, 1997, ..... 2003. 2004 년과는 다릅니다. 개발자들은 이제 oracle ....을 사용합니다. 10 개 이상의 데이터베이스가 있음을 확인하십시오.

매우 나쁜 것은 매년 평가 양식 (평가 기준)이 다르다는 것입니다. 따라서 데이터베이스 구조는 해마다 다릅니다.

이제 Jsp/Servlet을 사용하여이 프로젝트를 다시 작성하여 모든 연도에 범용 사용자 인터페이스를 갖도록해야합니다. 그러나 상사가 말했듯이 데이터베이스 구조는 유지해야하며 데이터는 매우 매우 민감하므로 그대로 두십시오.

이것은 내 상황입니다. 이걸 디자인하는 방법을 말해 줄 수 있습니까? 어떤 디자인 패턴을 사용해야합니까?

답변

0

평가 보고서는 데이터를 보는 데만 사용되며 더 이상 변경하지 않는 것으로 가정합니다.

이 경우 평가 보고서에 필요한 데이터베이스/테이블을 결정하십시오 (데이터/테이블의 하위 집합 일 수도 있음). 각 데이터베이스에서 평가 보고서에 대한 데이터가 포함 된보기를 정의하십시오.

물론 뷰 정의는 모든 데이터베이스마다 다를 수 있지만 적어도 보고서는 뷰의 구조에 의존 할 수 있습니다.

가능한 한 데이터베이스보기의 나머지 부분과보기를 분리하십시오. 그래도 다음 해 레이아웃을 변경할 수 있습니다. 보고서에 대한 데이터베이스보기를 만들 수있는 한 보고서는 변경되지 않습니다.

+0

이것은 현명한 아이디어입니다. 정말 고맙습니다! – lonelyloner

0

이전 데이터베이스를 업데이트해야합니까? 그렇지 않다면, 그것들을 모두 최신 시스템으로 이식 할 수 있습니까? 예전의 시스템은 그대로 두십시오. 이전 시스템을 여전히 변경할 수 있으면 기존 시스템을 업데이트 할 때 새 시스템을 업데이트 할 수 있도록 트리거를 추가 할 수 있습니까? 그렇게하면 민감한 오래된 데이터를 편집하지는 못하지만보다 현대적인 방식으로 표현할 수는 있습니다.

이것이 가능하지 않다면, 런타임에 위와 같은 코드 레이어를 추가하는 방법을 조사 할 것입니다. 즉, 1995 년이나 2000 년에 데이터를 조회해야하는 경우 필수 검색 (대문자 구문 작성)을 수행하고 모든 데이터베이스에서 동일한 구조로 데이터를 다시 형식화 한 다음이를 반환 할 수 있습니다. 그런 다음 데이터를 올바른 위치로 다시 밀어 넣어야 할 때 역순으로 작성하십시오.

싱글 톤/전략/팩토리의 의미에서 특정 디자인 패턴이 아니지만 가끔 고대 레거시 구성 요소에 멀티플렉서를 만들어야하는 경우가 있습니다.

새 인터페이스를 설계 할 때 기존 시스템을 일부만 포팅해도 새로운 액세스 포인트를 최신 상태로 유지할 수 있습니다.

+0

이것은 똑똑한 아이디어입니다. 감사! – lonelyloner