다중 테넌트 데이터베이스입니다.
- 고객 / 테넌트마다 다른 (동일한) 데이터베이스 / 스키마를 가진 DB 서버? 또는
- 고객 / 테넌트가 동일한 테이블 내에서 레코드를 공유하는 데이터베이스 / 스키마가있는 DB 서버?
예를 들어, 위의 옵션 # 1 아래에 MySQL 서버 mydb01.example.com
가 있고 customer1
내부에 데이터베이스 가있을 수 있습니다 . 이 customer1
데이터베이스에는 특정 고객 (고객 # 1)에 대한 내 응용 프로그램 을 강화하는 10 개의 테이블 이 있을 수 있습니다 . 또한 customer2
정확히 10 개의 테이블이 있지만 고객 # 2에 대한 데이터 만 포함 하는 데이터베이스 가있을 수 있습니다 . customer3
데이터베이스, 데이터베이스 등 이있을 수 있습니다 customer4
.
위의 옵션 # 2에는 myapp_db
테이블과 테이블이 10 개인 단일 데이터베이스 / 스키마 만 있습니다 (위와 동일). 그러나 여기서 모든 고객에 대한 데이터는 10 개의 테이블 내에 존재하므로 테이블을 "공유"합니다. 그리고 애플리케이션 계층에서는 고객이 10 개의 테이블에있는 레코드에 액세스 할 수있는 논리 및 보안 제어가 가능하며 고객 # 1이 앱에 로그인하지 않고 고객 # 3의 데이터 등을 보지 않도록 각별한주의를 기울입니다.
이 중 어떤 패러다임이 전통적인 "다중 테넌트"DB를 구성합니까? 그리고 어느 쪽도 아닌 경우 누군가가 다중 테넌트 DB가 무엇인지에 대한 예 (위에서 설명한 시나리오를 사용하여)를 제공 할 수 있습니까?