문제

내 프로젝트의 일부 사람들은 모든 사람들과 함께 공통 개발 데이터베이스를 사용하는 것이 가장 좋은 것이라고 생각하는 것 같습니다. 나는 그것이 그렇지 않으며 각 개발자가 자신의 데이터베이스를 갖는 (정기적으로 업데이트 된 데이터 덤프 포함)를 갖는 것이 최고라고 생각합니다. 내가 옳고 그름입니까? 이러한 접근법에서 문제가 발생 했습니까?

도움이 되었습니까?

해결책

디스크 공간과 CPU는 충분히 저렴해야합니다 모든 개발자는 데이터베이스의 자체 인스턴스를 실행할 수 있습니다., 버전 제어하에 자동화 된 빌드가 있습니다. 이는 개발자가 다른 개발자의 동시 해킹과 분리하여 데이터베이스 해킹에 대담하게 대담 할 수 있도록해야합니다.

물론 경고는 개인 사례에 대한 변경 사항이 다른 사람에게는 쓸모가 없다는 것입니다. ~하지 않는 한 빌드 프로세스 중에 자동으로 적용 할 수 있습니다. 따라서 해당 주가 버전 제어, 단위 테스트 변경 사항 DDL.

데이터베이스 정의를 프로젝트 코드의 다른 부분으로 처리하고 변경 및 리팩토링을 조정하는 이론 및 실습에 대한 훌륭한 안내서는 참조하십시오. 리팩토링 데이터베이스 : 진화 데이터베이스 설계 Scott W. Ambler와 Pramod Sadalage.

다른 팁

나는 개발을 위해 데이터베이스 사본을 갖는 것을 좋아합니다. 왜냐하면 그것이 다른 사람들에게 어떤 영향을 줄지 걱정하지 않고 상황을 신속하게 바꿀 수있는 유연성을 제공하기 때문입니다.

그러나 모든 개발자가 자체 데이터베이스 사본을 해킹하고 있다면 결국 모든 사람의 작업을 합병하는 것이 점점 더 어려워집니다.

나는 당신이 일상적인 개발 중에 개발자가 현지 사본을 사용하도록함으로써 두 세계를 최대한 활용할 수 있다고 생각하지만, 각 개발자는 아마도 자신의 작업을 정기적으로 일반적인 사본으로 병합해야 할 것입니다. 많은 단위 테스트를 작성하는 것도 도움이됩니다.

우리는 모든 개발자 (20-ODD) 사이에 단일 데이터베이스를 공유하지만 모든 사람이 자신의 테이블을 갖도록 구성되었습니다.

당신은 그렇지 않습니다 필요 응용 프로그램을 제대로 구조화하는 경우 개발자 당 별도의 데이터베이스. 어쨌든 사용하는 데이터베이스 또는 테이블 프리 픽스는 인스턴스 (단위 테스트, 시스템 테스트, 수락 테스트, 생산, 재해 복구 등)간에 쉽게 이동할 수있는 데이터베이스 또는 테이블 준비금을 구성 할 수 있어야합니다.

단일 데이터베이스를 사용하는 데있어 장점은 유지 보수 비용이 상각된다는 것입니다. DBA가 많은 데이터베이스를 처리하려고하지는 않습니다 (또는 소규모 DB 상점 인 경우 개발자가 개발에 더 잘 활용 될 때 자신의 데이터베이스를 유지하려고하는 모든 개발자가 없습니다).

단일 실패 지점을 갖는 것이 좋지 않습니까?

나는 단일 공유 데이터베이스를 선호합니다. 그러나 상황과 개발중인 응용 프로그램에 크게 의존합니다.

나에게 효과가있는 것은 당신에게 효과가 없을 수도 있습니다. 당신의 직감과 함께 가십시오.

Hibernate 또는 Hibernate 기반 플랫폼으로 작업하는 경우 서버를 시작할 때 생성 할 데이터베이스를 구성 할 수 있습니다 (작성 옵션). 이것은 수업에 새로운 속성을 추가 할 때 매우 유용합니다. 이 경우 각 개발자는 자신의 DB 사본을 가져야합니다.

DB 구조를 전혀 변경하지 않으면 단일 공유 DB를 사용할 수 있습니다. 이 두 번째 경우에는 필수가 아닙니다. 나는 내가 원하는 것을 할 수있는 내 자신의 DB를 선호합니다. 반면에 일부 쿼리는 많은 시간이 걸릴 수 있으며 DB를 공유하는 경우 팀 전체에 영향을 미칩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top