par cy4nur3 » 17 oct. 2007, 08:25
Code : Tout sélectionner
SELECT menu_semain, SUM( IF(menu_entree1 = '', 0, 1) + IF(menu_entree2 = '', 0, 1) + IF(menu_entree3 = '', 0, 1) + IF(menu_entree4 = '', 0, 1) + IF(menu_resistance1 = '', 0, 1) + IF(menu_resistance2 = '', 0, 1) + IF(menu_resistance3 = '', 0, 1) + IF(menu_resistance4 = '', 0, 1) + IF(menu_resistance5 = '', 0, 1) + IF(menu_legume1 = '', 0, 1) + IF(menu_legume2 = '', 0, 1) + IF(menu_legume3 = '', 0, 1) + IF(menu_fromage1 = '', 0, 1) + IF(menu_fromage2 = '', 0, 1) + IF(menu_fromage3 = '', 0, 1) + IF(menu_dessert1 = '', 0, 1) + IF(menu_dessert2 = '', 0, 1) + IF(menu_dessert3 = '', 0, 1) ) AS total FROM menu WHERE admin_id = 'kerlochj' GROUP BY menu_semaine
par Hubert Roksor » 16 oct. 2007, 14:38
SELECT menu_jour, ( IF(menu_entree1 = '', 0, 1) + IF(menu_entree2 = '', 0, 1) + IF(menu_entree3 = '', 0, 1) + IF(menu_entree4 = '', 0, 1) + IF(menu_resistance1 = '', 0, 1) + IF(menu_resistance2 = '', 0, 1) + IF(menu_resistance3 = '', 0, 1) + IF(menu_resistance4 = '', 0, 1) + IF(menu_resistance5 = '', 0, 1) + IF(menu_legume1 = '', 0, 1) + IF(menu_legume2 = '', 0, 1) + IF(menu_legume3 = '', 0, 1) + IF(menu_fromage1 = '', 0, 1) + IF(menu_fromage2 = '', 0, 1) + IF(menu_fromage3 = '', 0, 1) + IF(menu_dessert1 = '', 0, 1) + IF(menu_dessert2 = '', 0, 1) + IF(menu_dessert3 = '', 0, 1) ) AS total FROM menu WHERE admin_id = 'kerlochj' AND menu_semaine = 42
par iclo » 16 oct. 2007, 13:12
par Tracker » 16 oct. 2007, 12:27
En effet, c'est bien de promouvoir un schéma solide, mais pour les guerres d'idéologies il vous faudrait ouvrir un nouveau sujet. Pour en revenir au problème, j'aimerai avoir le nombre de plat que l'utilisateur "lamba" a pris pour une semaine donnée. Ce que je ne comprends pas c'est que d'après le schéma je ne vois ni l'identité de l'utilisateur ni les quantités de chaque plat. Comment conserves-tu ces informations ?
j'aimerai avoir le nombre de plat que l'utilisateur "lamba" a pris pour une semaine donnée.
identité: admin_id quantités de chaque plat: c'est toujours 1, vue qu'un enregistrement correspond à la saisie des plats d'une journée par individu. le nb de plats par jour/admin_id est le nombre de champs (entree...dessert) ne contenant pas ''
par Hubert Roksor » 16 oct. 2007, 12:18
par zeus » 16 oct. 2007, 12:13
par Tracker » 16 oct. 2007, 11:54
Ce qui m'agace dans ta remarque, c'est que, si je te comprend bien, soit on maitrise tout, soit ça ne sert à rien de penser design de base puisqu'on ne maitrise pas tout. C'est une règle que nous suivons ici depuis bien avant toi, nous donnons des pistes d'amélioration, si le membre est tenté, il les applique et s'il est bien chaud, on l'invite à aller voir plus loin. Maintenant, il faut bien commencer par quelque part et je trouve que refaire le schéma de la base me semble être un bon point de départ
par zeus » 16 oct. 2007, 11:23
par Tracker » 16 oct. 2007, 10:38
Alors un problème de design, de plus ou de moins, me parrait bien accessoire... C'est une question de point de vue, mais, si un jour, cy4nur3 devra ajouter une fonctionnalité supplémentaire à son système de cantine, et qu'il se rendra compte que c'est impossible sans tout recommencer, ou bien que ses scripts prennent un temps démesuré pour s'exécuter, ce ne sera peut-être pas tellement un détail. Désolé, mais pour moi, concevoir des scripts sur une base de donnée boiteuse, c'est comme construire un chateau sur un marécage, on finit tôt au tard par patauger...
Alors un problème de design, de plus ou de moins, me parrait bien accessoire...
ps: Je dois avouer que j'ai du mal à comprendre ce que les transactions et les locks viennent faire dans le design de base d'une base de donnée
par cy4nur3 » 16 oct. 2007, 10:38
par zeus » 16 oct. 2007, 10:32
par iclo » 16 oct. 2007, 10:28
par Tracker » 16 oct. 2007, 10:19
vous n'avez pas de solution a me proposer?
par cy4nur3 » 16 oct. 2007, 10:15
par Tracker » 16 oct. 2007, 10:11
C'est toi qui voit, et tant mieux si ça fonctionne comme ça. Mais saches qu'en plus de faire pédaler inutilement le serveur de base de donnée, tu as le risque que si un jour on te demande d'ajouter des fonctionnalités sur l'application, tu risques de te retrouver dans une impasse, avec une base de donnée difficilement modifiable, puisque remplie de donnée. Alors que sur une structure normalisée, la plus part du temps, un ajout de fonctionnalité se fait sans devoir tout redémonter. Bonne continuation...