Aller au contenu

Optimiser les structures d'une table


windu.2b

Messages recommandés

Bonjour,

Je travaille actuellement sur un projet durant mon stage et je dois stocker des données calculées (récupérées et croisées préalablement à partir d'autres tables de la même base de données) dans une table (qui n'existe pas encore, donc je suis libre de la structurer comme je le veux).

Ma question est la suivante:

Sachant que j'ai dans les 200 données calculées à enregistrer, et ce pour chaque UL (unité laitière) que je dois traiter, et qu'il y a environ 8.000 à 10.000 UL à traiter, vaut-il mieux créer une table de 200 colonnes ( :francais: ) ou une table avec 2 colonnes (une pour le nom de la donnée, une pour la valeur) dans laquelle je stockerai indifféremment toutes ces 200 données, à moi ensuite de les récupérer selon les critères que je veux ?

Ceci entraîne en fait une question générale: qu'est-ce qui est le plus rapide ? lire des colonnes une par une ou parcourir toute une table (sachant qu'au final, elle contiendra plusieurs dizaines voire centaines de milliers d'enregistrements) ?

Lien vers le commentaire
Partager sur d’autres sites

Si tu écoutes les design pattern (ce qu'il vaut mieux faire ;)), chaque table ne doit contenir qu'un et un seul type d'objet que tu relies ensuite par des tables de liaison.

En clair :

Tu crées une table de jeux d'enregistrements (en définissant les données d'un jeu d'enregistrement), mappée par un IDEnregistrement

Tu crées une table avec l'ensemble de tes unités laitières, mappée par un IDUL

Tu crées une table de liaison, mappée par un IDLiaison, qui dit tel IDEnregistrement va avec tel IDUL. L'avantage, c'est de pouvoir gérer éventuellement des liaisons n-n.

Du coup, dans ton backend, n'oublie pas de coder les fonctions d'ajout et de suppression en cascade :francais:

LSP, le manchot à la 500° page sur 2000 du manuel d'installation de JES

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...