Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2007, 13h30   #1
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Par défaut sélectionner les noms des colonnes

Bonjour,

Je me trouve dans une situation un peu... originale. C'est peut-être mon architecture qui est à revoir ? Bref, mon problème est le suivant :

j'ai une table utilisateurs contenant pour chaque ligne :
id, nom, mail, passwd, points de pénalité.
une deuxième table réservation contenant :
id, jour, puis une liste de colonnes dont les noms sont les id des utilisateurs, comme ça cette table contient les réservations de chacun des utilisateurs.
Mon problème à présent, c'est que je voudrais pouvoir savoir à qui envoyer un mail i.e. qui sont les gens qui ont réservé un jour donné : pour ça il faut que je puisse accéder au nom des colonnes qui, pour le jour qui m'intéresse, ont une case différente de 0, mettons. Quelque chose comme ça :

id | jour | 1 | 2 | 3 | 4
23|2007-08-23 | 0 | 1 | 1 | 0
24|2007-08-24 | 1 | 1 | 1 | 0
25|2007-08-25 | 0 | 0 | 1 | 1

il faudrait que je récupère, pour le jour 2007-08-23 les valeurs 2 et 3 et pour le jour 2007-08-25 les valeurs 3 et 4, par exemple... mais je dois dire que je suis un peu coincé (un peu novice en SQL, je dois bien le reconnaître)... Si quelqu'un a une idée... ?

Merci beaucoup !!!

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 13h36   #2
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
je suis parti pour sélectionner toute une journée, tester colonne par colonne qui est différent de 0 et stocker tout ça dans un tableau... si quelqu'un a une idée de solution plus élégante, je suis preneur, notamment sur la structure de mes tables.

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 13h58   #3
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Fait ta table 'reservations' plutôt comme ça :
id_utilisateur
jour

En reprenant ton exemple, ça donnerait :

id_utilisateur | jour
2 |2007-08-23
3 |2007-08-23
1 |2007-08-24
2 |2007-08-24
3 |2007-08-24
3 |2007-08-25
4 |2007-08-25

Aucun test à effectuer pour récupérer les réservations d'une date, et si tu ajoutes un utilisateur, pas besoin de modifier la structure de la table.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h05   #4
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Merci beaucoup !!!!
Juste une question (je ne me rends pas compte) ça ne risque pas de gonfler trop ma taille de base ? Le truc va devoir tourner quelques années (à priori)...

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h28   #5
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Une année = 365 jours
10 réservations / jour
pendant 10 ans

représentent 36500 enreg., ce qui est négligeable.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h35   #6
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Super !!! Merci beaucoup !
De fait, en y réfléchissant, cette solution me simplifie carrément la vie !!!! Décidément, faut que j'apprenne comment on structure une BDD proprement...

Encore un grand merci (c'est plutôt 30 résa par jour, mais j'imagine que ça restera négligeable... : on change pas d'ordre de grandeur).

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h28.


 
 
 
 
Partenaires

Hébergement Web