현재 위치: > 최신 기사 목록> ThinkPhp는 데이터 테이블 접두사를 통해 다른 데이터 테이블을 어떻게 구별합니까? 자세한 튜토리얼

ThinkPhp는 데이터 테이블 접두사를 통해 다른 데이터 테이블을 어떻게 구별합니까? 자세한 튜토리얼

gitbox 2025-08-04

소개

ThinkPhp는 PHP를 기반으로 한 오픈 소스의 가벼운 객체 지향 웹 개발 프레임 워크로서 풍부한 기능과 도구를 제공하고 개발 프로세스를 크게 단순화하고 개발자가 효율성을 향상시킬 수 있도록 도와줍니다.

데이터베이스 디자인에서는 데이터 테이블 접두사, 특히 멀티 테넌트 시스템에서 다양한 유형 또는 소스의 데이터 테이블을 구별해야합니다. 각 임차인은 독립적 인 데이터 테이블을 가지고 있으며,이 데이터 테이블은 접두사를 통해 구별되고 관리됩니다. 이 기사는 ThinkPhp에서 데이터 테이블 접두사를 설정하고 사용하는 방법을 자세히 설명합니다.

데이터 테이블 접두사 설정

ThinkPhp에서는 구성 파일을 통해 데이터 테이블의 접두사를 균일하게 설정할 수 있습니다. 일반적 으로이 구성 파일은 Project Root 디렉토리의 구성 디렉토리에 있으며 파일 이름은 Database.php 입니다.

이 파일에는 모든 데이터베이스 테이블 이름 접두사를 지정하는 구성 항목 이 있습니다. 기본적 으로이 구성 항목은 빈 문자열이며 접두사가 사용되지 않음을 나타냅니다.

접두사를 추가 해야하는 경우 접두사 구성을 원하는 접두사에 수정하십시오.

 'prefix'         => 'my_',

구성이 완료되면 ThinkPhp는 수동 스티치없이 데이터베이스 작업을 수행 할 때 테이블 이름을 자동으로 접두사합니다.

접두사 데이터 테이블을 사용하십시오

데이터베이스 테이블을 만들 때 접두사 테이블 이름을 직접 사용하여 다른 테이블을 구별 할 수 있습니다. 예를 들어, 사용자 테이블을 만들 때 접두사 my_가 제공되고 코드 예제는 다음과 같습니다.

 \think\facade\Db::execute("CREATE TABLE `my_user` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `username` VARCHAR(255) NOT NULL,
    `password` VARCHAR(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;");

이런 식으로 사용자 테이블은 테이블 이름 접두사로 구별되므로 다른 데이터 테이블을 별도로 효과적으로 관리 할 수 있습니다.

쿼리 접두사 데이터 테이블

쿼리 중에 접두사 테이블 이름을 직접 지정할 수도 있습니다. 예를 들어, my_user 테이블의 데이터를 쿼리하려면 다음 코드를 사용할 수 있습니다.

 \think\facade\Db::name('my_user')->select();

이를 통해 접두사 된 테이블 이름을 명시 적으로 지정하여 쿼리 데이터 소스가 올바른지 확인할 수 있습니다.

요약

ThinkPhp의 데이터 테이블 접두사를 구성하면 여러 테넌트 또는 다른 모듈과 데이터 테이블을 쉽게 구별 할 수 있습니다. 통합 접두사를 설정 한 후 데이터베이스를 작성하고 쿼리 할 때 접두사를 넣어 시스템 구조를 더 명확하고 편리하게 유지할 수 있습니다.