• 3 minutes to read

효율적인 다중 테넌트 SaaS 관리를 위해서는 각 테넌트(고객)가 사용하는 소프트웨어 유형과 접근 URL을 체계적으로 관리할 수 있는 데이터베이스 구조가 필요합니다. 여기서는 Tenants, ServicesTypes, TenantsServicesLinks 세 개의 테이블을 사용하여 다중 테넌트 환경을 손쉽게 관리하는 방법을 소개합니다.

테이블 구조 개요

이 설계는 세 개의 주요 테이블을 통해 다중 테넌트 SaaS 시스템에서 각 테넌트가 사용하는 소프트웨어와 접근 URL을 관리합니다.

  1. Tenants 테이블 – 각 테넌트(고객) 정보, 즉 SaaS 서비스를 사용하는 기업 정보를 저장합니다.
  2. ServicesTypes 테이블 – 제공하는 SaaS 소프트웨어 유형을 저장합니다. 예: "Employee Licensing," "Vendor Licensing," "Report Writer" 등.
  3. TenantsServicesLinks 테이블TenantsServicesTypes를 연결하여, 각 테넌트가 사용하는 소프트웨어와 그에 대한 접근 URL을 저장합니다.

테이블 설계

1. Tenants 테이블

테넌트의 ID와 이름을 저장하며, 각 테넌트를 고유하게 식별합니다. TenantIDBIGINT 형식으로 자동 증가 값으로 설정하여, 각 테넌트가 등록될 때마다 고유 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
);

각 테넌트가 사용하는 소프트웨어와 접근 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 환경에서 필수적인 관리 기능을 제공하며, 유지보수와 확장성 측면에서도 유리한 구조를 제공합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com