A voir également:
- [SQL] Problème de création de tables
- Creation de compte google - Guide
- Création de compte gmail - Guide
- Creation de site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Tables des matières word - Guide
3 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
19 déc. 2006 à 10:21
19 déc. 2006 à 10:21
Bonjour,
Quelques questions, pour commencer...
1 - quel SGBD utilises-tu ?
2 - quel message d'erreur as-tu ?
Quand on aura ça, on pourra commencer à t'aider ;)
Xavier
Quelques questions, pour commencer...
1 - quel SGBD utilises-tu ?
2 - quel message d'erreur as-tu ?
Quand on aura ça, on pourra commencer à t'aider ;)
Xavier
Hello,
Tout d'abord, je te conseille de créer chaque table séparément. Comme ça si ça ne marche pas, tu as plus vite repéré l'erreur.
Ensuite, pour revenir à ta BD, plusieurs choses:
1° L'attribut CURRENT_DATE devrait être remplacé par CURDATE si tu utilises mysql.
2° Les noms des clés étrangères doivent être entre parenthèses
3°La contrainte CHECK devrait être placée à la fin, comme les définitions de clés.
4° l'attribut UNIQUE est inutile pour la clé primaire (la clé primaire est d'office unique, sans avoir besoin de le préciser)
5° Les contraintes doivent avoir un nom (par exemple CONSTRAINT nom_de_la_contrainte PRIMARY KEY (nom_de_l'attribut)
Ainsi, la 1ère table devient:
CREATE TABLE MEMBRE (
DateInscription date,
NomDiscussion char(40) NOT NULL,
NomStatut char(15) NOT NULL,
MotDePasse char(40) NOT NULL,
Htaccess char(40) NOT NULL,
Pseudo char(15) NOT NULL,
CONSTRAINT C1 PRIMARY KEY (Pseudo, NomDiscussion, NomStatut),
CONSTRAINT C2 FOREIGN KEY (NomStatut) REFERENCES STATUT(NomStatut),
CONSTRAINT C3 FOREIGN KEY (NomDiscussion) REFERENCES STATUT(NomDiscussion),
CONSTRAINT C4 FOREIGN KEY (NomDiscussion) REFERENCES DONNEES(NomDiscussion),
CONSTRAINT C5 FOREIGN KEY (NomDiscussion) REFERENCES STOCKAGE(NomDiscussion),
CONSTRAINT C6 FOREIGN KEY (Pseudo) REFERENCES STATUT(Pseudo),
CONSTRAINT C7 FOREIGN KEY (Pseudo) REFERENCES DISCUSSION(Pseudo))
Voilà, à toi de jouer pour le reste...
Maintenant, si je peux me permettre, et si tu peux l'éviter, je te déconseille une clé primaire à trois attributs. Deux sont en règle générale suffisantes (voir souvant une seule...)
Bonne chance
Tout d'abord, je te conseille de créer chaque table séparément. Comme ça si ça ne marche pas, tu as plus vite repéré l'erreur.
Ensuite, pour revenir à ta BD, plusieurs choses:
1° L'attribut CURRENT_DATE devrait être remplacé par CURDATE si tu utilises mysql.
2° Les noms des clés étrangères doivent être entre parenthèses
3°La contrainte CHECK devrait être placée à la fin, comme les définitions de clés.
4° l'attribut UNIQUE est inutile pour la clé primaire (la clé primaire est d'office unique, sans avoir besoin de le préciser)
5° Les contraintes doivent avoir un nom (par exemple CONSTRAINT nom_de_la_contrainte PRIMARY KEY (nom_de_l'attribut)
Ainsi, la 1ère table devient:
CREATE TABLE MEMBRE (
DateInscription date,
NomDiscussion char(40) NOT NULL,
NomStatut char(15) NOT NULL,
MotDePasse char(40) NOT NULL,
Htaccess char(40) NOT NULL,
Pseudo char(15) NOT NULL,
CONSTRAINT C1 PRIMARY KEY (Pseudo, NomDiscussion, NomStatut),
CONSTRAINT C2 FOREIGN KEY (NomStatut) REFERENCES STATUT(NomStatut),
CONSTRAINT C3 FOREIGN KEY (NomDiscussion) REFERENCES STATUT(NomDiscussion),
CONSTRAINT C4 FOREIGN KEY (NomDiscussion) REFERENCES DONNEES(NomDiscussion),
CONSTRAINT C5 FOREIGN KEY (NomDiscussion) REFERENCES STOCKAGE(NomDiscussion),
CONSTRAINT C6 FOREIGN KEY (Pseudo) REFERENCES STATUT(Pseudo),
CONSTRAINT C7 FOREIGN KEY (Pseudo) REFERENCES DISCUSSION(Pseudo))
Voilà, à toi de jouer pour le reste...
Maintenant, si je peux me permettre, et si tu peux l'éviter, je te déconseille une clé primaire à trois attributs. Deux sont en règle générale suffisantes (voir souvant une seule...)
Bonne chance