[SGBD]Annuaire et hiérarchie multiple

Annuaire et hiérarchie multiple [SGBD] - SQL/NoSQL - Programmation

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
Reply

Marsh Posté le 08-08-2002 à 13:31:18   

Reply

Marsh Posté le 09-08-2002 à 11:29:30    

up ?

Reply

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


Message édité par redant le 09-08-2002 à 12:03:18
Reply

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.

Reply

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 :D
 
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]

Reply

Marsh Posté le 09-08-2002 à 15:21:18    


 :non:  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,
 :hello:  

Reply

Marsh Posté le 09-08-2002 à 15:32:35    

redant a écrit a écrit :

 
 :non:  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,
 :hello:  
 




 :(  
un cerveau me serait plus utile...
 
MERCI ! vais pouvoir avancer.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed