|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Inscription : août 2006 Messages : 590 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : août 2006 Messages : 590 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : août 2006 Messages : 590 ![]() |
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 |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Une année = 365 jours
10 réservations / jour pendant 10 ans représentent 36500 enreg., ce qui est négligeable. |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : août 2006 Messages : 590 ![]() |
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 Hugo |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com