두 MVC (나는 Symfony 사용) 기반 웹 사이트간에 모델 데이터를 공유하는 최선의 방법을 찾고 있습니다.웹 응용 프로그램간에 모델 데이터 공유
배경 정보
우리는이 개 웹 사이트 A와 B 같은 소프트웨어는 두 사이트에 사용되지만, 다른 고객 데이터가 있습니다. 고객은 콘텐츠를 공개 할 수 있습니다. 이제 사용자의 콘텐츠가 자동으로 두 웹 사이트에 모두 공개되는 이점이있는 새로운 지불 옵션을 도입 할 것입니다.
구현! 두 응용 프로그램에 대해 동일한 데이터베이스를 사용
:
나는 세 가지 구현을위한 아이디어를 가지고있다. 그런 다음 적절한 표적 웹 사이트 (A/B)를 나타내는 표를 한 열씩 확장해야합니다.
나는 나쁜 디자인이 될 것이라고 생각합니다. 각 웹 사이트에 속하지 않은 쿼리 결과 집합에서 레코드를 제외하기 위해 많은 코드를 다시 작성해야합니다.
두 개의 데이터베이스 사용.
제 의견으로는 성능이 크게 떨어지고 구현하기가 어려울 것입니다. 데이터는 항상 두 번 요청해야합니다. 또한 앞으로는 웹 사이트 C, D, E가있을 수 있습니다.
웹 서비스를 통해 두 개의 데이터베이스를 동기화합니다.
일부 데이터는 두 번 저장됩니다. 따라서 이러한 데이터 조각에 대한 모든 작업은 두 번 수행해야합니다 (작성, 읽기, 갱신, 삭제).
각 솔루션에는 심각한 단점이 있기 때문에 지금은 붙어 있습니다.
의견이 있으십니까? 그렇지 않다면 어느 것이 가장 좋습니다.
모델 설정 방법에 따라 개별 사이트의 FooPeer (Propel) 또는 FooTable (Doctrine) 클래스를 수정하여 개별 사이트의 데이터를 필터링 할 수 있으며 개별 쿼리를 다시 작성할 필요가 없습니다. – yitznewton
@ yitznewton에 동의합니다. 모델 클래스를 수정하여 필터를 투명하게 적용하고 많은 인스턴스를 처리했습니다. 가입 케이스를 고려해야합니다. – Raise
멀티 테넌시의 개념이이 맥락에서 맞는다고 생각합니까? 나는 각 웹 사이트를 세입자로 정의 할 수있다. 사실이라면이 symfony 플러그인을 사용할 수 있습니다 : http://www.symfony-project.org/plugins/sfMultiTenantPlugin – fishbone