2013-12-23 2 views
0

프로젝트의 경우 다양한 종류의 사용자를 포함하는 여러 데이터베이스를 사용하고자합니다. 웹 사이트는 여러 하위 도메인으로 나뉩니다. 즉, 1 개의 하위 도메인에 1 개의 데이터베이스가 있습니다. 기존의 하위 도메인 데이터베이스를 따라갈 수있는 1 개의 중앙 데이터베이스가 있습니다.여러 데이터베이스에있는 Symfony/Doctrine 사용자

중앙 데이터베이스에는 모든 하위 도메인 응용 프로그램을 관리 할 수 ​​있어야하는 관리자 사용자가 있습니다. 다른 데이터베이스에는 하위 도메인 사용자가 있습니다. 사용자는 Doctrine 엔티티 (Symfony 2 용 FOS 사용자 번들)로 저장되며 ID로 다른 엔티티 (외래 키 제약 조건)와 연결됩니다. 엔터티는 중앙 데이터베이스 및 하위 도메인 데이터베이스에 대해 동일합니다.

사용자는 하위 도메인 관련 항목 (읽기 : 엔티티 인스턴스)에 바인딩되어야합니다. 하위 도메인 사용자의 경우에는 아무런 문제가 없지만 중앙 데이터베이스에있는 관리자 사용자를 위해이를 수행하는 방법을 알지 못합니다. 관리자 사용자가 하위 도메인 특정 데이터베이스에 "존재하지"않기 때문에 외래 키 제약 조건을 충족시킬 수 없습니다.

엔티티 중 일부를 리팩토링해도 문제가되지 않습니다. 우리 애들 한테 조언을 해주길 바랍니다. 미리 감사드립니다.

P. 우리는 모든 데이터베이스를 쉽게 전환 할 수 있습니다. 이것은 로그인을 제외하고 전체 응용 프로그램 전체에서 가능합니다. FOS 사용자 번들이 처리합니다.

답변

0

하위 도메인의 모든 사용자에 대해 중앙 집중식으로 하나의 기본 사용자 엔터티를 사용하고 각 하위 도메인에 확장 된 사용자 엔터티가 있으며 추가 정보가 저장됩니다 특정 하위 도메인과 관련된 가능한 구조는 단일 테이블 상속을 사용할 수 있지만 필수는 아닙니다.

관련 문제