Base de données de forum

kutol Messages postés 2 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 22 juillet 2009 - 21 juil. 2009 à 21:51
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 22 juil. 2009 à 22:45
Bonjour;
J'ai commencé, en guise de tp, une base de donnée de forums, sur postgresql. Je suis un peu coincé. Quelqu'un peut-il me fournir un code de ce genre pour que je vois un peu la ligne générale? Merci.

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 juil. 2009 à 23:04
Salut,

Merci d'indiquer le plus précisement ta question (cf reglement)

Ou est le blocage (message d'erreur)
0
kutol Messages postés 2 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 22 juillet 2009
22 juil. 2009 à 21:33
Bonjour;
je vous fais parvenir ce que j'ai commencé à faire...
J'ai déclaré les tables suivantes:
-- Table: auteur

-- DROP TABLE auteur;

CREATE TABLE auteur
(
numero_auteur serial NOT NULL,
pseudo character varying NOT NULL,
date_prem_msg date NOT NULL,
numero_profil integer,
CONSTRAINT cle_auteur PRIMARY KEY (numero_auteur),
CONSTRAINT ref_profil FOREIGN KEY (numero_profil)
REFERENCES profil (numero_profil) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (OIDS=FALSE);
ALTER TABLE auteur OWNER TO postgres;
-- Table: documentation

-- DROP TABLE documentation;

CREATE TABLE documentation
(
numero_rubrique integer NOT NULL,
numero_site integer NOT NULL,
CONSTRAINT cle_doc PRIMARY KEY (numero_rubrique, numero_site),
CONSTRAINT ref_rubrique FOREIGN KEY (numero_rubrique)
REFERENCES rubrique (numero_rubrique) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ref_site FOREIGN KEY (numero_site)
REFERENCES site (numero_site) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (OIDS=FALSE);
ALTER TABLE documentation OWNER TO postgres;

-- Table: forum

-- DROP TABLE forum;

CREATE TABLE forum
(
adresse_forum character varying NOT NULL,
courriel_resp character varying,
numero_forum serial NOT NULL,
CONSTRAINT "clé_forum" PRIMARY KEY (numero_forum),
CONSTRAINT "unique" UNIQUE (adresse_forum)
)
WITH (OIDS=FALSE);
ALTER TABLE forum OWNER TO postgres;
-- Table: message

-- DROP TABLE message;

CREATE TABLE message
(
numero_msg serial NOT NULL,
titre character varying,
date_publi date NOT NULL,
numero_auteur integer NOT NULL,
numero_rubrique integer NOT NULL,
numero_msg_init integer,
CONSTRAINT cle_msg PRIMARY KEY (numero_msg),
CONSTRAINT num_msg_init FOREIGN KEY (numero_msg)
REFERENCES message (numero_msg) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ref_auteur FOREIGN KEY (numero_auteur)
REFERENCES auteur (numero_auteur) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ref_rubrique FOREIGN KEY (numero_rubrique)
REFERENCES rubrique (numero_rubrique) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (OIDS=FALSE);
ALTER TABLE message OWNER TO postgres;
-- Table: profil

-- DROP TABLE profil;

CREATE TABLE profil
(
numero_profil serial NOT NULL,
nom character varying NOT NULL,
prenom character varying,
telephone character varying,
adresse_postale character varying,
courriel_profil character varying NOT NULL,
date_naissance date NOT NULL,
CONSTRAINT cle_profil PRIMARY KEY (numero_profil),
CONSTRAINT courriel_profil_unique UNIQUE (courriel_profil)
)
WITH (OIDS=FALSE);
ALTER TABLE profil OWNER TO postgres;
-- Table: rubrique

-- DROP TABLE rubrique;

CREATE TABLE rubrique
(
numero_rubrique serial NOT NULL,
intitule character varying NOT NULL,
date_creation date,
courriel_anim character varying,
"numero-forum" serial NOT NULL,
CONSTRAINT cle_rubrique PRIMARY KEY (numero_rubrique),
CONSTRAINT intit_unique UNIQUE (intitule)
)
WITH (OIDS=FALSE);
ALTER TABLE rubrique OWNER TO postgres;
-- Table: site

-- DROP TABLE site;

CREATE TABLE site
(
numero_site serial NOT NULL,
adresse_site character varying NOT NULL,
CONSTRAINT cle_site PRIMARY KEY (numero_site),
CONSTRAINT adresse_unique UNIQUE (adresse_site)
)
WITH (OIDS=FALSE);
ALTER TABLE site OWNER TO postgres;
--Données de forum
INSERT INTO forum (adresse_forum, courriel_resp) VALUES ('www.coursbd.fr', 'auteur1@yahoo.fr');
INSERT INTO forum (adresse_forum, courriel_resp) VALUES ('www.astucesbd.fr', 'auteur2@hotmail.fr');
INSERT INTO forum (adresse_forum, courriel_resp) VALUES ('www.exobd.fr', 'auteur3@wanadoo.fr');

--Données de rubrique
INSERT INTO rubrique (intitule, date_creation, courriel_anim) VALUES ('chapitre1', to_date ('DDMMYYYY','01012009'), 'Bernadette');
INSERT INTO rubrique (intitule, date_creation, courriel_anim) VALUES ('chapitre2', to_date ('DDMMYYYY','01022009'), 'Honorine');
INSERT INTO rubrique (intitule, date_creation, courriel_anim) VALUES ('chapitre3', to_date ('DDMMYYYY','01032009'), 'Joseph');

--Données du site
INSERT INTO site (adresse_site) VALUES ('www.premiersite.com');
INSERT INTO site (adresse_site) VALUES ('www.deuxiemesite.com');
INSERT INTO site (adresse_site) VALUES ('www.troisiemesite.com');

--Données message
INSERT INTO message (titre, contenu, date_publi) VALUES ('bonjour', 'Bonjour; le 1° cour de bd est mis en ligne, vous pouvez dès à présent le consulter', to_date ('DDMMYYYY','01012009'));
j'ai pas fini je suis encore en train d'éditer. Mais à cette étape j'ai le message d'erreur suivant sur la requête:


ERROR: duplicate key value violates unique constraint "unique"

********** Erreur **********

ERROR: duplicate key value violates unique constraint "unique"
État SQL :23505
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 juil. 2009 à 22:45
Oui,

Tout semble OK.

Es-tu sur que tes tables sont vides quand tu joues les insert?

Il dit qu'il y un problème de contrainte unique, je vois rien de dupliqué
0
Rejoignez-nous