2012-04-23 3 views
0

그럼 우리는 별도의 데이터베이스를 가진 다중 입주자 애플리케이션을 개발 중입니다. 모든 스키마는 N 개의 별도 데이터베이스에 대해 동일한 구조를 갖습니다. 우리는 aspx와 함께 MySql을 사용하여 웹 애플리케이션을 구축하고 있습니다. N 개의 개별 데이터베이스에있는 동일한 사용자가있을 수 있습니다. 사용자가 자신의 데이터를 가지고 드롭 다운 목록에 표시하는 데이터베이스 을 연결하는 방법이 필요합니다. 사용자가 로그인 할 때 데이터베이스를 연결 한 후 데이터가있는 드롭 다운 목록에서 사용 가능한 모든 데이터베이스를 볼 수 있습니다. 사용자가 드롭 다운 목록 값을 변경하면 은 데이터베이스를 즉시 변경하고 연결된 데이터베이스에서 자신의 데이터를 볼 수 있어야합니다. 우리는 다중 임차인 신청서를 만들었고 모든 것이 잘 될 것입니다. 문제는 이 특정 데이터베이스 (예 : )의 모든 데이터베이스를 매핑하는 것입니다. 모든 사용자는 별도의 데이터베이스에 별도의 고유 ID가 있습니다. 그래서 사용자는 데이터 구조가 아닌 다중 입주자 데이터베이스 에 공통적 인 내용이 없습니다. 모든 사용자에게 고유 ID 을 master 데이터베이스에 저장하고 다른 고유 ID와 연결하려고 시도했습니다. 여기서 사용자는 이지만 해결책은 유익한 결과를 제공하지 않습니다. 모든 다른 대안을 환영합니다.다중 입주자 데이터베이스 매핑

+0

텍스트를 읽을 수 있도록 포맷하십시오. –

+0

아마도 다양한 데이터베이스에서 userid를 연결하는 테이블을 가진 데이터베이스입니까? – Prescott

+0

그 중 하나를 시도했지만 첫 번째 데이터베이스 인 userID를 검색 할 수 없습니다. – Aaraadhana

답변

0

내가 멀티 테넌트 (multi-tenant) mysql을 위해 함께 갔다 방법은 다음과 같습니다

  • 주 모든 임차인의 모든 데이터와 데이터베이스, 그러나 모든 테이블이 세입자
  • 하여 데이터를 분리하는 tenantID 열이
  • 각 테넌트에 대해 여러 데이터베이스를 만들지 만 해당 데이터베이스는 기본 데이터베이스를 다시 참조하는 mysql보기로 채워집니다. 예 :

. 내 상황에서

# ie. main database has tables: users, and invoices 
# if you have a new tenant named "acme", then: 
create database acme; 
create view acme.users as select * from maindb.users where entityID=2; 
create view acme.invoices as select * from maindb.invoices where entityID=2; 

,이 날 (내가 멀티 테넌트 (multi-tenant)를 사용하는 줄 알았어 전에 만들어진) 내 이전 쿼리 중 하나를 변경할 필요가 없습니다있었습니다. 내가해야만하는 것은 적절한 데이터베이스를 선택하는 것이었고 모든 데이터는 자동으로 분리되었습니다.

하지만 실제 데이터를 모두 동일한 데이터베이스에 보관하면 유지 관리가 간단 해집니다.

관련 문제