Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1308 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Création bdd SQL - comment faire? Newbie Inside

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création bdd SQL - comment faire? Newbie Inside

n°1337955
Brigitte_L​ahaie
Posté le 03-04-2006 à 16:46:40  profilanswer
 

:hello:  
 
Désolé pour le titre peu explicite mais j'ai pas trouvé mieux :heink:  
 
Je débute en base de données (débutant de chez débutant).
 
La problematique : j'ai en charge la gestion de 200 adresses mail et 100 listes de diffusion environ.
 
toto@raoul.fr appartient aux listes de diffusion "service du personnel", "Secouriste du travail" et  "Football" par exemple
tata@raoul.fr  appartient aux listes de diffusion "Direction" et "Football"
 
Comment faire pour creer une base qui me permette de savoir dans quelles listes se trouvent toto, et inversement
 
Le probleme, c'est que je ne sais pas vraiment par ou commencer.
 
Je suppose qu'il me faut une table avec le nom des utilisateurs, une table des listes de diffusion, mais je vois pas comment les lier entre elle?
Faut il creer une table pour chaque liste de diffusion?
 
Je suis un peu perdu donc si une ame charitable passe par la, je la remercie par avance.
 
Language : mysql
 

mood
Publicité
Posté le 03-04-2006 à 16:46:40  profilanswer
 

n°1337958
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 16:49:39  profilanswer
 

Il te faut en effet une table pour les mails ou utilisateurs, une table avec les listes de diffusion et une table de liaison entre les deux tables ou les clés de chaque table vont migrer.


Message édité par Manu la Science le 03-04-2006 à 16:49:58

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1337968
Brigitte_L​ahaie
Posté le 03-04-2006 à 16:54:47  profilanswer
 

:heink:  
 
si je resume, j'ai une table avec les utilisateurs (nom, prenom)
une table avec le nom des listes de diffusion (football, direction...)
 
il ne me faut pas une table football avec les utilisateurs (toto tata)???

n°1337981
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 17:10:15  profilanswer
 

Tu as une table utilisateur avec (nom, prenom etc et une clé primaire id_utilisateur), une table liste (nom_liste avec une clé primaire id_liste) et une table liaison qui a les champs id_utilisateur et id_liste.
Tu peux saisir ainsi plusieurs listes et attribuer une liste pour plusieurs utilisateurs et/ou un utilisateur pour plusieurs listes.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1337992
Brigitte_L​ahaie
Posté le 03-04-2006 à 17:16:29  profilanswer
 

ah ok, j'avais pas percuter sur id_utilisateur et id_liste.
 
pour les faire, je fait un truc du genre  
 
CREATE TABLE utilisateur  
(
  id_utilisateur INTEGER NOT NULL AUTO_INCREMENT,
  utilisateur VARCHAR .........
);
 
c'est ca?


Message édité par Brigitte_Lahaie le 03-04-2006 à 17:16:42
n°1338150
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 19:59:24  profilanswer
 

Oui, c'est cela...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1338355
Brigitte_L​ahaie
Posté le 04-04-2006 à 08:43:30  profilanswer
 

Merci,
 
je vais essayer ca dans la journée.

n°1338852
Brigitte_L​ahaie
Posté le 04-04-2006 à 15:37:18  profilanswer
 

voila ce que j'ai fait. Est-ce correct?
J'ai un doute sur la table de liaison :pfff:  
 
 -- Création de la base liste
DROP DATABASE IF EXISTS liste ;
CREATE DATABASE liste ;
USE liste ;
 
-- Création de la table utilisateurs
CREATE TABLE liste.utilisateurs
(
      util_num INTEGER NOT NULL AUTO_INCREMENT,
      util_nom VARCHAR(20) BINARY NOT NULL,
      util_prenom VARCHAR(20) BINARY NOT NULL,
      util_local VARCHAR(20) BINARY,
      PRIMARY KEY (util_num),
      UNIQUE (util_nom,util_prenom,util_local)
)
;
 
-- Création de la table liste de diffusion
CREATE TABLE liste.listdiff
(
      listdiff_num INTEGER NOT NULL AUTO_INCREMENT,
      listdiff_nom VARCHAR (20) BINARY NOT NULL,
      PRIMARY KEY (listdiff_num),
      UNIQUE (listdiff_nom)
)
;
-- Créaion de la table de liaison
CREATE TABLE liste.liaison
(
      liaison_util INTEGER NOT NULL,
      liaison_listdiff INTEGER NOT NULL,
      PRIMARY KEY (liaison_util,liaison_listdiff),
      INDEX liaison_util (liaison_util),
      INDEX liaison_listdiff (liaison_listdiff),
      FOREIGN KEY (liaison_util) REFERENCES utilisateurs (util_num) ON DELETE CASCADE ,
      FOREIGN KEY (liaison_listdiff) REFERENCES utilisateurs (listdiff_num) ON DELETE CASCADE
)
;


Message édité par Brigitte_Lahaie le 04-04-2006 à 15:37:40
n°1338884
Manu la Sc​ience
...la science ... pas toujours
Posté le 04-04-2006 à 16:08:51  profilanswer
 

Ca a l'air d'être cela... mais pour la table liaison, tu n'es pas obligé (et c'est même mieux, je pense) de ne ps mettre de clé primaire. L'association des deux clés étrangères suffit.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1338919
Brigitte_L​ahaie
Posté le 04-04-2006 à 16:35:13  profilanswer
 

Merci,
 
je suis entrain de remplir les tables, on verra si ca fonctionne demain car j'ai pleinde boulot qui vient de me tomber dessus :(
 
merci encore pour tes conseils

mood
Publicité
Posté le 04-04-2006 à 16:35:13  profilanswer
 

n°1340326
Brigitte_L​ahaie
Posté le 06-04-2006 à 10:50:42  profilanswer
 

Help!!!
 
j'arrive pas à écrire la requete qui me permetterait d'afficher que tel utilisateur appartient à tels listes (listes foot, direction..)
 
Pour savoir qui est dans la liste foot, j'ai fait ca mais j'arrive pas à faire l'inverse :pfff:  
 
SELECT util_nom , util_prenom , listdiff_nom  
FROM utilisateurs , listdiff , liaison
WHERE util_num = liaison_util
AND liaison_listdiff = listdiff_num
AND listdiff_nom = 'foot' ;


Message édité par Brigitte_Lahaie le 06-04-2006 à 11:12:37
n°1340364
Manu la Sc​ience
...la science ... pas toujours
Posté le 06-04-2006 à 11:18:59  profilanswer
 

Il faut que tu mettes les noms des tables devant les champs dans le where...*
 
Du genre Where nomtable.monchamp = nomtable2.monchamp2


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1340380
Brigitte_L​ahaie
Posté le 06-04-2006 à 11:29:57  profilanswer
 

Comme ca?
 
SELECT util_nom , util_prenom , listdiff_nom  
FROM utilisateurs , listdiff , liaison
WHERE utilisateurs.util_num = liaison.liaison_util
AND liaison.liaison_listdiff = listdiff.listdiff_num
AND listdiff_nom = 'Informatique'

n°1340598
Manu la Sc​ience
...la science ... pas toujours
Posté le 06-04-2006 à 14:15:40  profilanswer
 

Il manque la table après le dernier And...
 
As-tu essayé ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1340614
Brigitte_L​ahaie
Posté le 06-04-2006 à 14:33:13  profilanswer
 

Les deux requetes que j'ai mis précedement fonctionnent.
Mais tu as raison, dans la derniere, j'ai oublié un petit qqch :D  
 
Concernant la requete inverse, j'ai également pigé le truc et en plus, ca fonctionne aussi. :p  
 
Bon, il me reste plus qu'a faire quelques ajustement car je suis obligé de taper "FOOT" en majuscule pour que cela fonctionne et je preferais que ca ne soit pas sensible aux majuscules et minuscules.
 
Il me reste aussi à integrer cela dans une page web mais je sais pas vraiment comment faire. En meme temps, j'ai pas encore cherché :whistle:


Message édité par Brigitte_Lahaie le 06-04-2006 à 14:33:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Création bdd SQL - comment faire? Newbie Inside

 

Sujets relatifs
Compréhension Utilisation de la base de données SQl server en réseaucreation massive de liste de distribution
[DIVERS]Demande conseil pour création d'un espace membre et photoProblème id dans création de tableau dynamique [résolu]
[SQL] récupérer l'intitulé d'un champs[SGBD/SQL] Oracle : PL/SQL, problème tout con
[VB.Net] Impossible de se connecter à une base SQL via ODBC???aide pour 1 sous-requete ds la base PUBS de SQL Server 7 microsoft
Requete SQL ? 
Plus de sujets relatifs à : Création bdd SQL - comment faire? Newbie Inside


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR