2012-03-13 5 views
0

PHP와 MySQL을 사용하여 소매 업계 용 웹 기반 ERP 응용 프로그램을 작성하고 있습니다. 다른 로컬 데이터베이스와 하나의 서버 (동일한 구조)를 갖게 될 것입니다. 내가 할 계획은 다른 저장소에있는 localhost에서이 응용 프로그램을 실행하고 하루가 끝날 때 다른 저장소에있는 다른 localhosts의 서버에있는 데이터베이스를 업데이트하는 것입니다.여러 로컬 데이터베이스에서 서버의 데이터베이스 업데이트

다른 데이터베이스에서 실행되는 시퀀스 쿼리를 기반으로 서버의 데이터베이스를 업데이트하고 싶습니다.

아무도 도와 줄 수 있습니까?

감사합니다.

+0

원격 데이터베이스를 슬레이브로 설정하는 것이 좋습니다. –

+0

관련 프로세스를 ETL (데이터웨어 하우징)이라고합니다. http://en.wikipedia.org/wiki/Extract,_transform,_load – Basti

답변

0

로컬 데이터베이스에 대한 요청의 타임 스탬프가 포함 된 일일 파일에 모든 삽입/업데이트/삭제 SQL 요청을 기록해야 할 수 있습니다.

예 :

2012-03-13 09:15:00 INSERT INTO... 
2012-03-13 09:15:02 UPDATE MYTABLE SET... 
2012-03-13 09:15:02 DELETE FROM... 
... 

그런 다음, 메인 서버에 매일 로그 파일을 보내 실행 순서를 유지하고 기본 데이터베이스에 대한 요청을 실행하는 새 파일을 읽도록 정렬 모든 파일을 병합합니다.

그러나 ERP 응용 프로그램에 대해 궁금한 점이 있습니다. 제품 재고 정보는 병합 할 수 없으며 일반적인 정보이므로 이러한 종류의 데이터에주의하십시오.

이 프로세스에서 자동 증가를 사용할 수 없으므로 일부 요청에서 중복 키가 발생하거나 잘못된 레코드에서 업데이트 요청이 발생합니다.

+0

Thanks befox. 내가 염두에 두었던 점은 중앙 데이터베이스를 제공하면 상점 소유주가 다른 로컬 호스트에 개별적으로 로그인 할 필요가 없으며 대신 중앙 데이터베이스의 데이터에 액세스 할 수 있으므로 해당 데이터베이스의 전체 정보가 제공됩니다. 다른 상점. 그러나 중복 키 및 제품 재고가있는 것과 마찬가지로 우려되는 문제도 있습니다. 중앙 데이터베이스를 분할하면 문제가 해결됩니까? – Sid

+0

각 상점마다 다른 데이터베이스를 가질 수 있다면 MySQL 복제 시스템을 사용할 수 있습니다 ... 그러면 각 중앙 저장소 데이터베이스가 최신 상태로 유지됩니다. http://dev.mysql.com/doc/refman/5.1/en/replication-solutions.html – befox

+0

을 참조하십시오. 나는 그 옵션을 befox에서도 살펴 봤지만, MySQL은 다중 마스터 복제를 지원하지 않을 것입니다. 내가 여러 개의 로컬 데이터베이스를 가지고 있다면, 서버에있는 슬레이브 데이터베이스에 데이터를 복제하려는 여러 마스터가 있음을 의미합니다. 내 생각은 불가능하다. – Sid

1

아마도 로컬 호스트 사이트의 기본 데이터베이스에 링크되어 있습니다. 하루가 끝날 때 업데이트 할 필요가 없기 때문에 데이터베이스에 만들어진 모든 변경 사항은 간단히 말하면 "중간 남자"가없는 데이터베이스에 만들어집니다. 로컬 데이터베이스가 별도로 필요하면 두 쿼리를 동시에 실행하십시오.

참고 : ERP 응용 프로그램이 작동하는 방식에 익숙하지 않으므로 여기를 벗어나면 용서하십시오.

+0

답변 주셔서 감사합니다. Douglas. 소매 용 ERP 애플리케이션에는 영업 트랜잭션과 같은 실시간 작업도 포함됩니다. 동시에 서버뿐만 아니라 현지인에 대한 쿼리를 실행하면 속도가 문제가 될 것이라고 생각하지 않습니까? – Sid

+0

나는 서버의 기능, 한 번에가는 항목 수 및 인터넷 연결에 따라 다릅니다. 나는이 문제에 대한 전문가는 아니지만 단순한 텍스트 업데이트가 아무 문제없이 거의 한 번에 수백 번 실행될 수 있다고 생각합니다. MB/GB의 데이터를 업로드하는 경우 문제가 발생할 가능성이 더 큽니다. 개인적으로, 나는 그것을 설정하고 얼마나 잘 실행되는지 보았습니다. 그러나 테스트와 연구에 많은 시간과 돈이 들었습니다. :) – DACrosby

관련 문제