Maison >base de données >tutoriel mysql >Comment optimiser la structure d'une base de données multilingue pour un stockage et une récupération efficaces ?
Optimisation de la structure de base de données multilingue
Cette question explore la structure de base de données optimale pour stocker des données multilingues tout en évitant le besoin de modifications de table ou de duplication de données. Trois approches sont présentées :
Approche 1 :
Cette approche combine les données dans un seul tableau avec des colonnes spécifiques à la langue, telles que :
[ products ] id (INT) name-en_us (VARCHAR) name-es_es (VARCHAR) name-pt_br (VARCHAR) description-en_us (VARCHAR) description-es_es (VARCHAR) description-pt_br (VARCHAR) price (DECIMAL)
Limitations : Nécessite une modification du tableau pour chaque nouvelle langue ajouté.
Approche 2 :
Cette approche crée des tableaux séparés pour chaque langue, tels que :
[ products-en_us ] id (INT) name (VARCHAR) description (VARCHAR) price (DECIMAL) [ products-es_es ] id (INT) name (VARCHAR) description (VARCHAR) price (DECIMAL)
Limitations : Champ de prix dupliqué dans chaque tableau de langues. Nécessite la création de nouvelles tables pour chaque nouvelle langue.
Approche 3 (recommandée) :
Cette approche utilise une table neutre avec une table traduite séparée avec une structure comme :
[languages] id (INT PK) code (VARCHAR) [products] id (INT PK) neutral_fields (MIXED) [products_t] id (INT FK, PK) language (INT FK, PK) translated_fields (MIXED)
Avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!