[MySQL] Création d'une requêtte

Création d'une requêtte [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 28-04-2005 à 10:10:29    

table enregistrements :

Code :
  1. _______________________
  2. id    | nom           |
  3. -----------------------
  4. 1     | blabla1       |
  5. 2     | blabla2       |
  6. 3     | blabla3       |
  7. 4     | blabla4       |
  8. 5     | blabla5       |
  9. -----------------------


 
table portables :

Code :
  1. ________________________________________________________
  2. id    | nom           | enr1     | enr2     | enr3     |
  3. --------------------------------------------------------
  4. 1     | blabla        | 1        | 5        | 2        |
  5. 2     | blabla        | 2        | 3        | 3        |
  6. --------------------------------------------------------


 
Comment je dois faire ma requêtte, pour obtenir un affichage comme celui-ci :
 
Affichage :
id = 1
nom = blabla
enr1 = blabla1
enr2 = blabla5
enr3 = blabla3
 
 
Pour l'affichage je dois recupérer les informations de la table enregistrement en fonction des colones enr1,2,3.
 
Merci pour votre aide

Reply

Marsh Posté le 28-04-2005 à 10:10:29   

Reply

Marsh Posté le 28-04-2005 à 10:20:02    

A mon avis tu as là un problème de conception :)
 
Tu as intérêt à avoir une table de plus comme ça:

Code :
  1. id    | NoEnr  | idPortable | idEnr |
  2. ------------------------------------|
  3. 1     | 1      | 1          | 1     |
  4. 2     | 2      | 1          | 5     |
  5. 3     | 3      | 1          | 2     |
  6. 4     | 1      | 2          | 2     |
  7. 5     | 2      | 2          | 3     |
  8. 6     | 3      | 2          | 3     |
  9. ------------------------------------|


Et ta table "portables" doit être modifiée pour être comme ça:

Code :
  1. id    | nom           |
  2. ----------------------|
  3. 1     | blabla        |
  4. 2     | blabla        |
  5. ----------------------|


Et avec un SELECT et un peu de mise en forme tu pourras obtenir ce que tu désires...
 
A+


Message édité par gfa le 28-04-2005 à 10:25:07
Reply

Marsh Posté le 28-04-2005 à 10:47:13    

Je vais expliquer exactement ce que je fait, je pense que ça sera plus simple. Je réalise un petit script pour la gestion des ordinateur portables.
 
J'ai donc une table "portables" :

Code :
  1. id
  2. date_creation
  3. date_modification
  4. netbios
  5. utilisateur
  6. societe
  7. fabriquant
  8. modele
  9. numero
  10. date_achat
  11. fournisseur
  12. modele_proc
  13. frequence
  14. model_mem
  15. taille_mem
  16. taille_ecran
  17. taille_dd
  18. lecteur_disquette
  19. ctr_reseau
  20. modem
  21. wifi
  22. lecteur_cddvd
  23. type_lecteur
  24. commentaire


 
J'ai pensé mettre les valeurs que je vais souvent utiliser dans la table enregistrements :

Code :
  1. id
  2. nom


et ensuite lors de l'affichage d'un portable prendre les informations de la table enregistrements en fonction de l'id de la colonne.
 
Tu pense que cela n'ai pas juste ??


Message édité par daprod le 28-04-2005 à 10:50:17
Reply

Marsh Posté le 28-04-2005 à 11:01:53    

Houlà... J'ai rien compris moi :)
 
Hum... Disons que dans la table "portable", si tu as deux portable du même fournisseur, du même modèle, ... Tu réecris chaque fois les données?  
 
Ce sont les deux seules tables que tu as?
 
Et sinon, je vois pas trop le rapport avec ta 1ère question :)

Reply

Marsh Posté le 28-04-2005 à 11:05:54    

Si j'ai 50 portables identiques, je ne vais pas a chaque fois mettre dans ma table les même informations, je prefere juste indiqué pour le fournisseur un id qui correspond a un enregistrement de ma table enregistrements.
 
Oui j'ai juste deux tables.
 
Ce n'est pas la même question, je me demande si je ne doit pas réorganiser mes tables autrement ?


Message édité par daprod le 28-04-2005 à 11:06:54
Reply

Marsh Posté le 28-04-2005 à 11:40:50    

daprod a écrit :

Si j'ai 50 portables identiques, je ne vais pas a chaque fois mettre dans ma table les même informations, je prefere juste indiqué pour le fournisseur un id qui correspond a un enregistrement de ma table enregistrements.
 
Oui j'ai juste deux tables.
 
Ce n'est pas la même question, je me demande si je ne doit pas réorganiser mes tables autrement ?


 
Et tu ferais ça pour toutes les colonnes de la table "portable" qui pourraient contenir des infos identiques?
 
Donc si je résume, dans ta table "enregistrements", tu mettrais:
 

  • Utilisateur

 

  • Société

 

  • Fabriquant

 

  • Modèle

 

  • Fournisseur

 

  • Modèle_proc

 

  • Fréquence

 

  • ...

Bref, un fourre-tout... Mouais :??: Et comment tu fais si un jour on te demande une liste des différents Fabriquant de portable?  
Tu serais obligé de faire un jointure entre "portable" et "enregistrements"... Pas très agréable, pas très logique ni très performant...
 
Je pense que tu ferais bien de potasser un peu des tutaux ou des bouquins sur les bases de données relationnelles, et le pourquoi du comment... Ca te fera le plus grand bien  :whistle:  
 
Et ça t'évitera des erreurs de conception de départ qui pourraient être ensuite lourdes de conséquences.
 
Voilà...

Reply

Marsh Posté le 28-04-2005 à 11:48:43    

:) Je me disais aussi que je devais lire un bouquin la dessus et que ma façon de faire n'était pas bonne.
 
Si tu as une référence de livre ou de tuto, je suis prenneur.
 
Merci pour ton aide.


Message édité par daprod le 28-04-2005 à 11:49:06
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed