우리는 모든 테넌트가 동일한 데이터베이스를 공유하는 NHibernate를 사용하여 다중 테넌트 애플리케이션을 개발 중입니다.NHibernate - 테넌트 특정 테이블 접두사 사용
우리가 고려한 한 가지 옵션은 우리 데이터베이스 객체에 대한 임차인 고유의 접두어를 사용하는 것입니다 (나는 Orchard와 동일한 방식이라고 생각합니다).
이것은 최소한 우리에게 임차인 데이터에 대한 복구 모델을 제공 할 것이고 대부분의 쿼리에 tenantid 필터를 포함하지 않아도된다는 것을 의미합니다.
제 질문은 -이 전략을 사용한 사람이 있습니까? 그렇다면 어떻게 그것에 대해 가셨습니까?
특히 모든 테넌트에 대해 동일한 SessionFactory를 사용할 수 있으며 NHibernate를 사용하여 런타임시 "새"테넌트에 대한 새로운 테이블 세트를 생성 할 수 있습니다 (이렇게하는 것이 안전 할 수 있습니다).
감사 벤
[업데이트]
이 가치 조사했지만 결국 우리는 공유 스키마가 우리의 필요에 더 적합 것을 결정했다. 세입자 별 스키마는 세입자 데이터를 명확하게 분리하지만 유지 관리를 더욱 어렵게 만듭니다. 우리의 세입자는 소량의 데이터 만 저장하기 때문에, 10 개의 테이블 * 1K 세입자가 있다고 생각하면 약간의 불편 함이 있습니다.
유창한 nhibernate로 이것을 수행하는 방법을 알아 주셔서 감사합니다. 연결 문자열 공급자는 유효한 지점입니다. 특정 스키마에 대한 액세스 권한 만 가진 각 클라이언트에 대한 로그인이 있어야하기 때문입니다. –