26-05-2009, 12:19 AM
Pour les grosses requêtes, ou les requêtes qui nécessitent de faire des traitements, les procédures stockées sont une bonne solution. Elles te permettent de délocaliser le traitement dans une fonction mysql en gros, et tu appelles ces fonctions comme tu ferais n'importe quelle requête.
Tu gagneras ainsi en visibilité.
Sinon, je ne connais pas ton modèle de données, mais tu peux aussi plancher sur des optimisations qui te permettraient de te passer de toutes ces conditions. Par exemple là, la donnée que tu calcules semble dépendre de 2 facteurs : pattern et nation. On pourrait envisager une table "bastion_force" ( si c'est bien la force, mais peu importe ) avec dedans les champs pattern, nation, et force.
Pour chaque couple pattern & nation, tu as une force. Tu pourrais donc remplacer toutes ces conditions par une simple multiplication.
Tu gagneras ainsi en visibilité.
Sinon, je ne connais pas ton modèle de données, mais tu peux aussi plancher sur des optimisations qui te permettraient de te passer de toutes ces conditions. Par exemple là, la donnée que tu calcules semble dépendre de 2 facteurs : pattern et nation. On pourrait envisager une table "bastion_force" ( si c'est bien la force, mais peu importe ) avec dedans les champs pattern, nation, et force.
Pour chaque couple pattern & nation, tu as une force. Tu pourrais donc remplacer toutes ces conditions par une simple multiplication.