2013-02-05 3 views
1

4 개의 기본 테이블이있는 클라우드 비즈니스 솔루션을 디자인하고 싶습니다. 사용자가 사용자 정의 필드 (열?) 또는 사용자 정의 개체 추가 (테이블?)를 추가 할 수 있습니다.하나의 실제 데이터베이스에 다중 논리 데이터베이스 저장

내 첫번째 생각은 각 계정에 대한 새 데이터베이스를 만들했지만 SQL Server 인스턴스에 데이터베이스 수에 제한,

2 솔루션이있다 : 각각의 4 개 기본 테이블을 복제하여 새로운 스키마를 만들 계정에 대한 각 스키마.

세 번째 해결 방법 : discryiminant 열 (ACCOUNT_ID)이있는 고유 테이블 4 개를 만듭니다. 사용자가 새 필드를 원하면 ACCOUNT_ID에 할당 된 조인 테이블을 추가하려는 경우 새 개체를 만들고 새 테이블을 만듭니다.

귀하의 의견은 무엇입니까? 어떤 기관에서도 기존 클라우드 솔루션이 데이터를 저장하는 방법을 알고 있습니까? (예 : salesforce)

나는 모든 계정에 대해 VM을 만들고 싶지 않습니다.

+2

글쎄, SQLFiddle이 어떻게 작동하는지 물어볼 수도 있습니다. . . 여기에 설명되어 있습니다 (http://sqlfiddle.com/about.html#howWorks). –

+3

여기에 가능한 멀티 테넌트 아키텍처에 대한 흥미로운 기사가 ​​있습니다. http://msdn.microsoft.com/en-us/library/aa479086.aspx 이런 종류의 프로젝트에 착수하는 경우 유용 할 것입니다. – John

+1

특정 사용자에게 잠긴 권한을 특정 스키마에 부여하는 것이 쉬우므로 일부 비즈니스 엔티티 변수를 기반으로 쿼리 로직을 동적으로 스크립트 아웃 할 수 있기 때문에 스키마 솔루션을 좋아합니다. –

답변

0

귀하의 제안에 감사드립니다. 특히 John이 제안한 Microsoft 문서가 많이 도움이되었습니다.

계정간에 공유되는 아키텍처 포인트가 거의 없으므로 (기본 테이블 4 개는 사용자를위한 제안 일 뿐이며 전체 사용자 정의가 필요함) EAV 패턴이없는 계정 디자인 당 스키마를 선택했습니다.

관련 문제