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

php mysql - dois-je ajouter le champ nom de catégorie à une table ou non ?

Si vous mesurez des millisecondes et que les E/S du disque de votre système ne sont pas extrêmement lentes, l'option 2 offrira de meilleures performances. Mais , on parle d'un gain négligeable en temps d'exécution. Étant donné que vous interrogerez déjà la base de données pour obtenir l'élément d'actualité, il serait hautement optimisé d'obtenir simplement le nom de la catégorie en même temps. J'ajouterais une table de mappage de category-name-id aux noms de catégories . Et la jointure à ce sujet lors de la réception d'articles d'actualité.

Du point de vue de la flexibilité et du point de vue de l'élimination du plus grand nombre de sources d'erreur possibles, j'irais également avec mon idée ci-dessus. Puisqu'il ajoute de la flexibilité à votre système et conserve toutes vos données au même endroit. Changer le nom d'une catégorie nécessiterait de modifier une colonne dans la base de données au lieu de modifier un fichier de configuration php ou, si l'option 1 était utilisée, de mettre à jour chaque enregistrement d'actualité.

Donc, mon meilleur conseil, ajoutez une table avec category-name-id aux noms de catégories mappages, puis les articles d'actualité contiennent l'identifiant de la catégorie à laquelle ils appartiennent.

Pour plus de performances, vous pouvez ensuite mettre en cache les données que vous récupérez sur les catégories existantes et d'autres données afin de ne pas avoir à interroger la base de données pour ces informations tout le temps.

Par exemple. Vous pourriez, au lieu de vous inscrire du tout, obtenir toutes les catégories du tableau des catégories que j'ai décrit ci-dessus. Mettez-le en cache dans l'application et ne l'obtenez qu'une fois le cache invalidé. c'est-à-dire qu'un délai d'attente se produit ou que les données de la base de données sont manipulées.