Bonjour à tous,

Débutant, j'essaie de mettre en place une arborescence de catégories et de sous catégores.

Dans une base de donnée de type MySql, je souhaiterais utiliser une seule table 'categorie' avec une relation enfant-parent. Il s'agit d'une table de type InnoDB, car je souhaite utiliser des contraintes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE TABLE `categorie` (
  `id_categorie` int(20) NOT NULL default '0',
  `libelle` varchar(100) NOT NULL default '',
  `parent_categorie_id` int(20) default '0',
  PRIMARY KEY  (`id_categorie`),
) TYPE=InnoDB;
Je voudrais également utiliser le framework hibernate pour la persistance, je souhaiterais générer les fichiers de mapping automatiquement à partir de la table 'categorie' en question (ide MyEclipse).

Pour gérer la mutiplicité des associations, (many-to-one....), MyEclipse se base sur les contraintes d'intégrités décrites dans la base.

J'aimerais donc indiquer dans ma table, qu'il existe une association entre la catégorie enfant et la catégorie parent.

Seulement, je n'arrive pas à créer une telle contrainte malgré de nombreux essais...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ALTER TABLE 'categorie' 
  ADD CONSTRAINT `cat_FK` 
    FOREIGN KEY (`parent_categorie_id`) REFERENCES `categorie` (`id_categorie`)
    ON DELETE CASCADE ON UPDATE CASCADE;
Merci beaucoup si vous pouvez me donner une idée...
ps: question de base, cela devrait-être possible une telle relation récursive dans une bd?

A bientôt!