Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/11/2012, 15h02   #1
CosmoKnacki
Membre habitué
 
Avatar de CosmoKnacki
 
Homme
Inscription : mars 2009
Messages : 106
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 106
Points : 129
Points : 129
Par défaut Représentation intervallaire d'une arborescence

Bonjour,

Après avoir lu ce cours, j'ai opté pour la représentation intervallaire afin de stocker un ensemble de catégories-sous-catégories dans une table.
Sauf que certaines de ces catégories peuvent se trouver à plusieurs endroits de l'arborescence (en d'autres termes, elles ont plusieurs pères).
Pour pallier au problème, j'envisage d'ajouter ces catégories dans la table autant de fois qu'elles figurent dans l'arbre mais avec un ID différent et d'ajouter à ma table une colonne `ALIAS` contenant l'ID de la première occurence de la catégorie en question.

Est-ce une bonne manière de procèder?

Code :
1
2
3
4
5
6
7
8
9
10
+-------------+----------------------+------+-----+---------+----------------+
| Field       | Type                 | Null | Key | Default | Extra          |
+-------------+----------------------+------+-----+---------+----------------+
| CAT_ID      | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| CAT_NAME    | varchar(45)          | NO   |     | NULL    |                |
| CAT_L_LIMIT | smallint(5) unsigned | NO   |     | NULL    |                |
| CAT_R_LIMIT | smallint(5) unsigned | NO   |     | NULL    |                |
| CAT_LEVEL   | tinyint(3)  unsigned | NO   |     | NULL    |                |
| CAT_ALIAS   | smallint(5) unsigned | NO   |     | NULL    |                |
+-------------+----------------------+------+-----+---------+----------------+
CosmoKnacki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 18h44   #2
Richard_35
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 855
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 855
Points : 3 863
Points : 3 863
Bonjour CosmoKnacki,

Citation:
Envoyé par CosmoKnacki
stocker un ensemble de catégories-sous-catégories dans une table.
Sauf que certaines de ces catégories peuvent se trouver à plusieurs endroits de l'arborescence (en d'autres termes, elles ont plusieurs pères).
==> une sous-catégorie peut-elle être, elle-même, "mère" ?

Les catégories et les sous-catégories possèdent-elles les mêmes attributs {CAT_NAME, CAT_L_LIMIT, CAT_R_LIMIT, CAT_LEVEL} ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 19h25   #3
CosmoKnacki
Membre habitué
 
Avatar de CosmoKnacki
 
Homme
Inscription : mars 2009
Messages : 106
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 106
Points : 129
Points : 129
Je crois que j'embrouille tout avec cette histoire de sous-catégorie, il n'y a pas d'objet "sous-catégorie", c'était juste pour exprimer le fait que chaque catégorie peut en contenir d'autres.
Donc chaque catégorie a les attributs précédement cités.
Une illustration:

On voit ici que la catégorie `consoles de jeux` peut se raccrocher aussi bien à la catégorie `informatique` qu'à la catégorie `jeux`. Il en serait de même pour une catégorie `chat naturalisé` qui peut venir de `racine/animaux/félins/chat/` ou de `racine/maison/interieur/objet décoratif/bête empaillée/`. Il ne s'agit pas d'une simple homonymie! C'est bien la même catégorie avec le même contenu, et les éventuels mêmes descendants.

Et d'ailleurs la gestion de cette descendance soulève des questions. Quand une catégorie mère est dupliquée dans la table, selon le procèdé décrit au précédant post, que faire des enfants!
La solution serait de les dupliquer également, ce qui risque de devenir assez vite énorme. Si par exemple je dois, ne serait-ce, dupliquer une vingtaine de catégories avec une vingtaine de descendants, j'obtiens 400 entrées supplémentaires dans la table.

Et je soupçonne de ne pas avoir fait le tour des problèmes qu'une telle structure puisse engendrer, d'où mon post.
CosmoKnacki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 11h03   #4
Richard_35
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 855
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 855
Points : 3 863
Points : 3 863
Bonjour CosmoKnacki,

Citation:
Envoyé par CosmoKnacki
.../... il n'y a pas d'objet "sous-catégorie", c'était juste pour exprimer le fait que chaque catégorie peut en contenir d'autres.
Donc chaque catégorie à les attributs précédement cités.
==> dans ce cas, une modélisation de type "nomenclature" (en GPAO) me semble pertinente :



donnant :
Categorie(IdCategorie, ...)
Nomenclature(#IdCategorieMere, #IdCategorieFille, ...)
==> contraintes :
  • IdCategorieMere <> IdCategorieFille ;
  • une catégorie "mère" ne doit pas se retrouver dans l'arborescence de sa propre catégorie (boucle sans fin repérée par une fonction récursive).
==> cela donne une arborescence bien propre !...... qu'il faut ensuite gérer via des fonctions récursives......
Images attachées
Type de fichier : jpg Capture.JPG (15,8 Ko, 28 affichages)
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2012, 12h53   #5
CosmoKnacki
Membre habitué
 
Avatar de CosmoKnacki
 
Homme
Inscription : mars 2009
Messages : 106
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 106
Points : 129
Points : 129
Merci pour ta réponse Richard_35.
Je vais éffectuer des tests et je posterai le retour ici.
CosmoKnacki est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web