1

저는 최근에 도움이 필요한 SQL Server 2000 데이터베이스를 개발했습니다. 곧 SQL Server 2005로 업그레이드 할 계획입니다. 이 데이터베이스에는 테이블 (CreatedBy, CreatedDate 등)에 대한 감사 필드, 외래 키 없음 및 끔찍한 전체 디자인이 없습니다. 인라인 SQL을 사용하여 데이터베이스에 직접 액세스하는 6 개의 프로그램과 다른 오래된/나쁜 방법이 있습니다.SQL Server 2000/2005의 Brownfield 데이터베이스 개발에 대한 최선의 접근 방법

스키마와 데이터 액세스를 정리하고 싶습니다. 좋은 출발점에 대한 제안이 있습니까? 이 데이터베이스는 프로덕션 데이터베이스이므로 개선되는 동안 계속 작업해야합니다. 감사.

답변

1

아마도 데이터베이스에 액세스하는 응용 프로그램부터 시작해야 할 것입니다. 데이터베이스 스키마를 변경하면 이러한 다른 응용 프로그램이 손상 될 수 있습니다. 내가 발견 한 가장 보편적 인 범인은 select * sql 다음에 열 위치를 기반으로 데이터에 액세스 한 것입니다. 마지막 열 앞에 열을 삽입하면 해당 코드가 중단됩니다. 또한 새 열에 대해 기본값을 사용하지 않으면 삽입 명령이 실패합니다.

가장 좋은 방법은 외부 프로그램이 데이터베이스를 사용하는 방법을 이해하고 새 데이터베이스를 디자인 한 다음 각 프로그램을 한 번에 하나씩 새 데이터베이스로 마이그레이션하는 것입니다.

프로덕션 환경에서이 데이터베이스를 변경하면 다른 응용 프로그램이 손상 될 수 있습니다.

1

보기 뒤에 현재 스키마/인터페이스를 유지하면서 스키마를 수정, 분석, 정규화 할 수 있습니다.

뷰에서 before 트리거를 사용하면 앱이 예상대로 읽고 쓸 수 있습니다.

이렇게하면 현재 앱이 작동하는 동안 클라이언트 앱을 새로운 스키마로 마이그레이션 할 수 있습니다. 그리고 귀하의 데이터는 새로운 스키마에있어 더 안전합니다 (DRI, FK, DF, CK 등).

이것은 또한 한 번 실행 한 달 아무도는 그 월말 보고서에 필수적인 대해 알고 예기치 않은 스프레드 시트에 대한 일관된 인터페이스 계약을 유지 ...