Bonjour,
Une question que je me pose : est-il préférable d'utiliser l'identifiant d'un enregistrement d'une table jointe pour faire un traitement PHP, ou vaut-il mieux utiliser son nom (libellé) ?
Je m'explique avec un exemple simple : on a un produit, stocké dans une table "produit" et un produit a une famille, stockée dans une table "famille". On a ainsi la clé étrangère "id_famille" dans la table "produit".
Première solution, que j'ai pris l'habitude de faire :
L'autre solution, avec jointure SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Si la famille est "Tablette" if ($id_famille == 3) {traitement}
Les deux solutions ont des avantages et inconvénients :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($nom_famille == "Tablette") {traitement}
- La première évite de faire la jointure SQL entre les 2 tables, puisque l'identifiant de la table "famille" est présent en clé externe dans la table "produit".
- La première évite d'impacter le code PHP si les noms de famille sont souvent modifiés dans la BDD, c'est surtout pour cette raison que j'utilise cette solution.
- La seconde est plus lisible et évite de mettre un commentaire pour expliquer que l'identifiant 3 de la table "famille" est 3.
Quelle solution utilisez-vous ? et pourquoi ?
Merci d'avance pour vos réponses
Partager