Oui, c'est le bon modèle.
En termes de performances, cela va se ressentir immédiatement (d'autant plus je le répère avec SQLite qui implique un moteur léger, de la mémoire partagée donc limitée, et potentiellement une machine déjà limitée : c'est pas un serveur, elle fait tourner d'autres choses, etc.)
En effet, passer de PK de 150 caractères (donc potentiellement 300 octets si ce sont des chaines unicode) à 3 x 32 ou 64 bits, y'a pas photo, vous compressez vos index de plus de 99% !
Ensuite, faires des requêtes à rallonge ne représente une perte de temps que pour le développeur qui les écrit. A l'exécution, elles seront plus rapide (moins de données à manipuler), et d'un point de vue maintenance/évolutivité vous vous y retrouverez à la première modification du programme.
N'oubliez pas que vous pouvez écrire des vues : rien ne vous empêche de créer une vue v_table2 qui expose les noms correspondant aux PK correspondant à votre table actuelle.
Je vous invite à consulter l'unique billet sur mon blog (cf mon profil à gauche) pour voir comment procéder.
=> Sauf que vu que vous avez la main sur le code, vous vous contenterez de faire une vue pour les lectures, vous enregistrerez directement dans les tables au bon format

Partager