나는이 예제를 가능한 한 간단하게 유지하려고 노력할 것입니다. OOP 패턴을 따르지 않는 이전 VB6 앱에서 도메인 기반 디자인 (각 테이블을 나타내는 비즈니스 개체)을 구현하려고합니다. 기존 코드는 10 년 된 VB 앱에서 예상 한 것처럼 작성됩니다 (예 : 필드에 인텔리 센스가없는 ADODB.Recordset 사용). 기존 코드는 OOP가 아니므로 기존 패턴을 따르는 것이 좋을 것입니다. DB 설계를 나중에 볼 수있는 개발자들에게 너무 많은 혼란을주지 않으면 서 새로운 요구 사항이 발생할 때 데이터베이스 변경 사항을 처리하는 방법이 내 도전 과제 중 하나입니다. 이 응용 프로그램에서 가정하자정규화되지 않은 넓은 테이블에서 깨끗한 휴식을 취하십시오.
우리는 다음과 같은 부담을 과도하게 명확하게 가상의 '클라이언트'테이블이 있습니다 된 ClientID CLIENTNAME 연락처 이름시 주 우편 번호 전화 CreditLimit CurBalance을 (그리고 계속적으로 그리고에 ...)
주소 InterestRate 약관이 존재합니다 기존의 2 개 금융 분야부터 이상한 분할로 나타날 수 있습니다 별도의 'Fiancials'테이블에 InterestRate과 이용 약관을 깰 허용 될 수 :
새로운 요구 사항은 새로운 금융 분야에 대한 호출 원래 테이블?
이상적으로 오래된 금융 필드 (CreditLimit, CurBalance)는이 새 테이블로 재배치되지만 앱의 많은 부분이 손상 될 수 있으므로 필드를 이동하는 것은 바람직하지 않습니다. 나는 테이블을 더 넓고 넓게 만드는 현재의 관례를 멈추고 싶다.
기본적으로 이전 코드/테이블 디자인 만 남기고 새로운 필드를 사용하여 깨끗한 휴식을 취하고 모든 기존 테이블과 새 테이블을 처리하기위한 도메인 개체를 만듭니다. 클라이언트 개체는 새 테이블을 나타내는 Financials 속성을 노출 할 수 있습니다. 재무 표입니다.
깨끗한 휴식을 취하거나 기존 muck에 새 필드를 추가하기 위해 TRY를하는 것이 좋은 생각입니까? 이전 테이블과 새로운 테이블을 나타내는 영리한 명명 체계가 있습니까? DBA는 기존 설계를 분해하지 않고 어떻게 깔끔하게 정리합니까?
감사합니다.