Position actuelle: Accueil> Derniers articles> Comment ThinkPhp distingue-t-il différentes tables de données par préfixe de table de données? Tutoriel détaillé

Comment ThinkPhp distingue-t-il différentes tables de données par préfixe de table de données? Tutoriel détaillé

gitbox 2025-08-04

Introduction

ThinkPHP est un cadre de développement Web open source et orienté objet léger basé sur PHP, offrant des fonctions et des outils riches, simplifiant considérablement le processus de développement et aidant les développeurs à améliorer l'efficacité.

Dans la conception de la base de données, il est souvent nécessaire de distinguer les tableaux de données de différents types ou sources via des préfixes de table de données, en particulier dans un système multi-locataire, chaque locataire a une table de données indépendante, qui est distinguée et gérée par le biais de préfixes. Cet article expliquera en détail comment définir et utiliser des préfixes de table de données dans ThinkPhp.

Paramètres du préfixe de table de données

Dans ThinkPhp, vous pouvez définir uniformément le préfixe de la table de données via des fichiers de configuration. Habituellement, ce fichier de configuration est situé dans le répertoire de configuration du répertoire racine du projet, et le nom de fichier est Database.php .

Il existe un élément de configuration nommé Prefix dans ce fichier qui spécifie tous les préfixes de nom de table de base de données. Par défaut, cet élément de configuration est une chaîne vide, indiquant qu'aucun préfixe n'est utilisé.

Si vous devez ajouter un préfixe, modifiez simplement la configuration du préfixe au préfixe souhaité, par exemple:

 'prefix'         => 'my_',

Une fois la configuration terminée, ThinkPhp préfixera automatiquement le nom de la table lors de l'exécution des opérations de base de données, sans couture manuelle.

Utiliser des tables de données préfixées

Lors de la création d'une table de base de données, vous pouvez utiliser directement le nom de table préfixé pour distinguer différentes tables. Par exemple, lors de la création d'une table utilisateur, le préfixe My_ est donné, et l'exemple de code est le suivant:

 \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;");

De cette façon, la table utilisateur se distingue par le préfixe du nom de la table, afin que différentes tables de données puissent être gérées efficacement séparément.

Requête des tables de données préfixées

Vous pouvez également spécifier directement le nom de la table préfixé pendant la requête. Par exemple, pour interroger les données dans la table my_user , vous pouvez utiliser le code suivant:

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

Cela vous permet de spécifier explicitement le nom de la table préfixé pour vous assurer que la source de données de requête est correcte.

Résumer

En configurant le préfixe de la table de données de ThinkPhp, il est facile de distinguer les tables de données de plusieurs locataires ou modules différents. Après avoir réglé un préfixe unifié, vous pouvez mettre des préfixes lors de la création et de la question de la base de données, ce qui rend la structure du système plus claire et plus pratique à maintenir.