아니요, 클라이언트 당 하나의 데이터베이스를 만드는 것은 클라이언트가 멀티 테넌트 응용 프로그램의 별도 사용자가 아닌 데이터베이스의 엔터티라고 가정 할 때 좋은 생각이 아닙니다.
클라이언트의 하드웨어, 프로젝트 또는 기타 자원과 같은 다른 엔티티를 등록하려는 경우 별도의 테이블에 저장하고 자원에서 클라이언트로 외래 키를 작성하여 "has-a" 관계.
과 같을 것이다 그 :
클라이언트 :
Id Name
1 Foo
2 Bar
자원 :
Id ClientId Name
1 1 Resource of Foo
2 1 Resource of Foo
3 2 Resource of Bar
당신은 또한 멀티 테넌시 (multi-tenancy) 시스템과 위의 접근 방식을 취할 수, 여기서 애플리케이션의 모든 사용자는 동일한 데이터베이스 및 애플리케이션에서 실행됩니다.
그런 접근 방식을 사용하면 다른 걱정거리가 있습니다. 예를 들어 단일 데이터베이스가 비율을 벗어나 성능이 떨어지고 백업 및 복원이 쉽지 않을 수 있습니다. 현재 사용자에게 권한이있는 행에 데이터베이스 액세스가 발생하는 경우 응용 프로그램 전체에 검사를 추가해야합니다. 한 사용자의 행동을 롤백하는 것은 어려울뿐만 아니라 특정 사용자에게 새로운 기능을 도입 할 수도 있습니다 (모두 동일한 소프트웨어 및 데이터베이스 스키마에서 실행되기 때문에).
당신이 찾고있는 무엇 인 용어 "다중 테넌트"에 대한 자세한 내용을 읽어
는 어떻게 응답 ~ 멀티 테넌시를 구현하는 것은 너무 광범위 할 것입니다. 예를 들어 위의 링크에서 MSDN 블로그 시리즈를 참조하십시오. 성능 문제에 관해서는 : 당신 만이 알고 있습니다. 그것은 모두 코드, 데이터, 스키마, 하드웨어 등에 따라 다릅니다. 벤치마킹해라.
내 질문을 이해하지 못하는 이유는 무엇입니까? –
질문을 이해하고 제 대답을 편집했습니다. 귀하의 초기 "새로운 고객이 언제 생겼는지"는 분명하지 않았습니다. – CodeCaster
이것은 끔찍한 나쁜 접근 방식입니다 - SQL Server는 ** 내부적으로 30 개의 회사가있는 "마스터"테이블을 쉽게 ** 처리 할 수 있습니다 - 별도의 데이터베이스를 만드는 데는 ** 전혀 필요 없음 ** (아무런 이점도 없음) 각 고객에게 .... –