Mysql
 sql >> Base de données >  >> RDS >> Mysql

Conception de base de données MySQL avec internationalisation

La manière la plus courante que j'ai vu cela est avec deux tables, membership et membership_ml , l'un stockant les valeurs de base et la table ml stockant les chaînes localisées. Ceci est similaire à votre deuxième option. La plupart des systèmes que je vois comme celui-ci sont conçus de cette façon parce qu'ils n'ont pas été conçus avec l'internationalisation à l'esprit dès le départ, donc les tables _ml supplémentaires ont été "rajoutées" plus tard.

Ce que je pense être une meilleure option est similaire à votre première option, mais un peu différente. Vous auriez une table centrale pour stocker toutes les traductions, mais au lieu d'y mettre le nom de la table et le nom du champ, vous utiliseriez des jetons et une table centrale "Contenu" pour stocker toutes les traductions. De cette façon, vous pouvez appliquer une sorte de RI entre les jetons de la table de base et les traductions de la table de contenu si vous le souhaitez également.

En fait, j'ai a posé une question à ce sujet il y a quelque temps, vous pouvez donc y jeter un coup d'œil pour plus d'informations (plutôt que de repasser les exemples de schéma ici).