2010-05-05 7 views
1

방금 ​​클라이언트 용 프로젝트를 인수했으며 데이터베이스 스키마가 완전히 엉망입니다. 필드의로드 이름을 바꾸면 관계 데이터베이스가됩니다.MYSQL 다른 데이터베이스 테이블을 업데이트하는 이벤트

하지만 API를 실행하는 과정에서이 작업을 수행하는 것은 매우 어려운 과정입니다. 따라서 새로운 데이터베이스를 만들고 대신이 코드를 사용하여 다시 작성하는 것이 좋습니다. 그러나이 과정에서 이러한 테이블을 동기화 된 상태로 유지할 방법이 필요합니다.

삽입/업데이트에서 새 테이블을 계속 업데이트하려면 MYSQL EVENT를 사용해야한다는 데 동의하십니까 & 삭제 하시겠습니까 ??

또는 더 나은 방법을 제안 할 수 있습니까 ??

희망 하시길 바랍니다.

내가 얻은 모든 입력에 감사드립니다.

+0

API를 다시 작성해야하는 경우 트리거로 시작하는 것이 좋지만 이전 표와 새로 표에 두 개의 별도의 삽입 (삽입, 삭제 등)을 시작하는 것이 좋습니다. 이렇게하면 코드를 병렬로 실행하고 예상대로 작동하는지 테스트 할 수 있습니다. 새 코드와 db 스키마를 기존 시스템과 별도로 작성하는 것도 좋습니다. 그런 다음 데이터를 변환하여 새로운 시스템으로 전환하십시오. –

+0

안녕하세요, 스티브는 정확히 무엇을 할 것인지에 대한 것입니다. 우리는 API를 사용하여 사이트를 다시 빌드하기 위해 API를 다시 작성하려고합니다. 나는 시간을 기반으로하는 곳을 촉발 시킨다고 생각했습니다. 그래서 내가 왜 묻고 있는지. – Lee

+0

트리거는 시간 기반이 아니라 액션 (즉, 삽입, 삭제 등)을 기반으로합니다. http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html –

답변

1

나는 내 프로젝트에서 같은 문제가있었습니다. 나는 너 같은 똑같은 짓을 했어. 새로운 데이터베이스 전체를 써. 우리는 새로운 데이터베이스와 피팅 코드를 개발했고이 작업을 마친 후에 이전 데이터베이스에서 새 데이터베이스로 마이그레이션하는 마이그레이션 스크립트 (작은 응용 프로그램)를 만들었습니다. 이것은 당신이 몇 가지 아이디어를 제공

희망 ...

+0

고맙지 만 이제는 진행되지 않습니다. 가능하다. 우리가 데이터베이스를 다시 작성한 다음이 사이트의 모든 쿼리를 거쳐 다시 실행하면 위험 할 수 있으므로이 작업은 느리게 진행됩니다. 우리는 점차적으로 그것을 수행 할 방법이 필요합니다. – Lee

0

은 나뿐만 아니라 동일한 문제를 가지고하고 있기 때문에, 기본적으로 한 번에 두 데이터베이스에 저장된 사용자 입력 (의 시점에서 데이터를 복제의 방법으로 갔다 원래 스키마는 필요한 모든 정보가 부족했습니다.) 수개월의 개발 후 고객은 완전히 새로운 데이터베이스로 이동하고 위험도가 너무 높다고 생각했습니다. (나는 그에 동의합니다.)

따라서 현재 고객의 반복 리팩터링 대신 새 데이터베이스를 구현할 것이라는 점을 고객에게 분명히 알리는 것이 좋습니다.

관련 문제