다중 테넌트 SaaS 관리를 위한 Tenants
, ServicesTypes
, TenantsServicesLinks
테이블 설계
효율적인 다중 테넌트 SaaS 관리를 위해서는 각 테넌트(고객)가 사용하는 소프트웨어 유형과 접근 URL을 체계적으로 관리할 수 있는 데이터베이스 구조가 필요합니다. 여기서는 Tenants
, ServicesTypes
, TenantsServicesLinks
세 개의 테이블을 사용하여 다중 테넌트 환경을 손쉽게 관리하는 방법을 소개합니다.
테이블 구조 개요
이 설계는 세 개의 주요 테이블을 통해 다중 테넌트 SaaS 시스템에서 각 테넌트가 사용하는 소프트웨어와 접근 URL을 관리합니다.
Tenants
테이블 – 각 테넌트(고객) 정보, 즉 SaaS 서비스를 사용하는 기업 정보를 저장합니다.ServicesTypes
테이블 – 제공하는 SaaS 소프트웨어 유형을 저장합니다. 예: "Employee Licensing," "Vendor Licensing," "Report Writer" 등.TenantsServicesLinks
테이블 –Tenants
와ServicesTypes
를 연결하여, 각 테넌트가 사용하는 소프트웨어와 그에 대한 접근 URL을 저장합니다.
테이블 설계
1. Tenants
테이블
테넌트의 ID와 이름을 저장하며, 각 테넌트를 고유하게 식별합니다. TenantID
는 BIGINT
형식으로 자동 증가 값으로 설정하여, 각 테넌트가 등록될 때마다 고유 ID를 자동으로 생성합니다.
CREATE TABLE Tenants (
TenantID BIGINT PRIMARY KEY IDENTITY(1, 1),
TenantName NVARCHAR(100) NOT NULL
);
2. ServicesTypes
테이블
사용 가능한 SaaS 소프트웨어 유형을 저장합니다. ServiceID
는 자동 증가 값으로 설정하여, 각 소프트웨어 유형이 등록될 때마다 고유 ID가 생성됩니다.
CREATE TABLE ServicesTypes (
ServiceID INT PRIMARY KEY IDENTITY(1, 1),
ServiceName NVARCHAR(100) NOT NULL
);
3. TenantsServicesLinks
테이블
각 테넌트가 사용하는 소프트웨어와 접근 URL을 연결하는 중간 테이블입니다. 이 테이블은 다대다 관계를 관리하기 위해 테넌트와 서비스 유형을 연결하고, 각 서비스의 URL을 추가로 저장할 수 있습니다. TenantServiceID
도 자동 증가 값으로 설정됩니다.
CREATE TABLE TenantsServicesLinks (
TenantServiceID INT PRIMARY KEY IDENTITY(1, 1),
TenantID BIGINT NOT NULL,
ServiceID INT NOT NULL,
ServiceURL NVARCHAR(255) NOT NULL,
FOREIGN KEY (TenantID) REFERENCES Tenants(TenantID),
FOREIGN KEY (ServiceID) REFERENCES ServicesTypes(ServiceID)
);
예제 데이터 입력
다음은 위의 테이블에 데이터를 삽입하는 예제입니다.
-- 테넌트 정보 삽입
INSERT INTO Tenants (TenantName)
VALUES ('A Company'), ('B Company');
-- SaaS 유형 정보 삽입
INSERT INTO ServicesTypes (ServiceName)
VALUES ('Employee Licensing'), ('Vendor Licensing'),
('Report Writer'), ('Internal Audit');
-- 테넌트별 SaaS URL 정보 삽입
INSERT INTO TenantsServicesLinks (TenantID, ServiceID, ServiceURL)
VALUES (1, 1, 'https://a-company.com/employee-licensing'),
(1, 2, 'https://a-company.com/vendor-licensing'),
(2, 3, 'https://b-company.com/report-writer');
결론
이 설계를 통해 각 테넌트가 사용하는 소프트웨어와 URL을 체계적으로 관리할 수 있으며, 테넌트별 SaaS 이용 현황을 쉽게 파악할 수 있습니다. 이러한 구조는 다중 테넌트 SaaS 환경에서 필수적인 관리 기능을 제공하며, 유지보수와 확장성 측면에서도 유리한 구조를 제공합니다.