Annuaire et hiérarchie multiple [SGBD] - SQL/NoSQL - Programmation
Marsh Posté le 09-08-2002 à 11:41:47
Le problème de ton modèle est qu'il n'est pas en troisième forme normale.
Voila ce que je te propose:
Seulement trois tables
Categorie(id_cat,nom_cat,id_cat_pere)
Site(id_site,adresse)
APourCategorie(id_site,id_cat)
Cette structure permet d'avoir autant de niveaux de sous-categories que tu veux
Marsh Posté le 09-08-2002 à 12:06:46
Si tu utilises cette solution il faudra autoriser les valeurs nulles pour l'attribut id_cat_pere de la table Categories.
Cela te permettra de définir les catégories les plus générales
(sommet de la hiérarchie) et qui n'ont donc pas de père.
Marsh Posté le 09-08-2002 à 15:02:13
redant a écrit a écrit : Le problème de ton modèle est qu'il n'est pas en troisième forme normale. Voila ce que je te propose: Seulement trois tables Categorie(id_cat,nom_cat,id_cat_pere) Site(id_site,adresse) APourCategorie(id_site,id_cat) Cette structure permet d'avoir autant de niveaux de sous-categories que tu veux |
CQFD
C'est en effet plus malin, merci...
Par contre, me gourre-je ou ça ne résout pas le problème de classification d'un site dans plusieuers catégories ?
Parce que là, à première vue, on a un id_cat pour un id_site. On peut certes placer un site dans n'importe quel niveau de la hiérarchie, mais pas dans plusieurs hiérarchies/niveaux.
Non ?
[- se dit-il, en craignant d'être un peu con]
Marsh Posté le 09-08-2002 à 15:21:18
au contraire,
Comme la clé de la table APourCategorie est le couple (id_cat,id_site) tu peux classifier ton site dans plusieurs catégories sans problème,
Exemple:
ApourCategorie
id_site id_cat
---------------
site1 cat1
site1 cat2
site2 cat3
...
bon courage,
Marsh Posté le 09-08-2002 à 15:32:35
redant a écrit a écrit : au contraire, Comme la clé de la table APourCategorie est le couple (id_cat,id_site) tu peux classifier ton site dans plusieurs catégories sans problème, Exemple: ApourCategorie id_site id_cat --------------- site1 cat1 site1 cat2 site2 cat3 ... bon courage, |
un cerveau me serait plus utile...
MERCI ! vais pouvoir avancer.
Marsh Posté le 08-08-2002 à 13:31:18
Ayant reçu un charmant mandat pour reprendre un annuaire de sites spécialisé particulièrement mal foutu, je me suis mis en tête de tout refaire ou presque (c'est un mal courant, je sais).
L'idée, après quelques réflexions préalabes, serait de faire un truc "classique"-à-la-yahoo-en-gros(c'est pas gagné, on est d'accord, menfin...), mais le problème de hiérarchie multiple me tarabuste.
ainsi.
Parmi les sites référencés, certains devraient pouvoir être placés dans plusieurs catégories (sous-catégories). C'est une des exigences, si possible.
J'imaginais une structure de bases de ce genre
Base catégorie
Nom_cat
Num_cat (clé)
Base sous-catégorie
Nom_sous_cat
Num_sous_cat(clé)
Num_cat
+ év. bases sous-sous-cat...
Base site
Nom (clé)
adresse
...
Num_cat
Num_sous_cat
Avec ça, je peux placer(théoriquement bien sûr) les sites dans 1 catégorie + 1 sous-catégorie + év. 1 sous-sous catégorie.
Mais si je veux placer un site dans la catégorie
1, ss_cat2,ss_cat1
et dans la catégorie
1, ss_cat4, ss_cat5,
comment que je fais, hein ?
C'est peut-être tout con, mais j'ai jamais été confronté à ce genre de prob.
D'où HELP.
Peut importe le SGBD pour l'instant, je suis en quête de logique.
d'avance merchi.
Message édité par deliriumtremens le 08-08-2002 à 13:33:37