Je suis en train de créér un "cloud tag" pour mon projet web (toujours le même ^^...) et j'ai un soucis au niveau de l'insertion des tags en SQL.
J ai 3 tables en jeu :
- La table Articles, contenant mes articles
- Ma table Tags, contenant tous les tags
- Une table articles_tags, qui lie articles à tag
C est donc une relation N..N entre Articles et tags.
Voila la structure des tables :
/*==============================================================*/
/* Table : TAGS */
/*==============================================================*/
create table tags(
id_tag serial NOT NULL,
nom_tag varchar(70),
primary key (id_tag)
);
/*==============================================================*/
/* Table : articles_tags : table de lien entre article
* et tags : relationn n..n */
/*==============================================================*/
create table articles_tags(
id_article_ref integer,
id_tag_ref integer
);
/*==============================================================*/
/* Table : ARTICLES */
/*==============================================================*/
create table articles
(
id_article serial NOT NULL,
id_theme integer,
id_user integer,
titre_article text,
titre_url_article varchar(50),
article text,
date_article numeric,
primary key (id_article)
);
/** Clés etrangeres pour la gestion des tags **/
alter table articles_tags add constraint fk_id_article_tag_article foreign key(id_article_ref)
references articles(id_article) on delete restrict on update restrict;
alter table articles_tags add constraint fk_id_article_tag_tag foreign key(id_tag_ref)
references tags(id_tag) on delete restrict on update restrict;
Pour faire l'insertion des tags lors de l'écriture d'un nouvel article j'utilise deux requetes SQL : - Une qui fait l insertion dans Articles
- Une qui fait l insertion des tags
Mon problème est que je ne sais pas comment remplir la table intermédiaire. Il faudrait que je récupère d'une part, l'identifiant du nouvel article, puis à chaque insertion ds la table Tags, l'identifiant du tag, et faire l'insertion.
Mes champs clés primaires étant en SERIAL, je ne vois pas comment récuperer l'identifiant créé lors de l'éxécution de la requête.
Merci ^^