![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: août 2008
Messages: 32
|
bjr a tous,
j'ai bien suivi vos conseil, merci bcp. Je me trouve a nouveau avec une interrogation: pour la création de mes produits, j'ai fais une table famille pour les répertorier par famille. ma table famille est: TV, HIFI, GPS, .... je veux après leur donner une sous famille pour TV: Tube cathodique, lcd, plasma pour Hifi: Home cinema, radio, lecteur cd, chaine hifi, .... .... Pour ces "sous famille", je dois créer un table pour chaque famille, ou il y a une autre solution..... merci a vous tous a bientot |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: novembre 2006
Localisation: Paris
Âge: 39
Messages: 1 697
|
Bonjour,
Je suppose que tu as fais une table tblFamille du genre: IDFamille (clé de la table) NomFamille Et que tu as, dans la table produit une clé étrangère pointant sur la clé IDFamille. IDProduit IDFamille .... Si tous tes produits sont à classer dans une sous famille et que chaque sous famille se rattache à une et une seule famille, un schéma simple pourrait être: tblProduit: IDProduit IDSousFamille NomProduit ... tblSousFamille: IDSousFamille IDFamille LibelléFamille tblFamille: IDFamille LibelléFamille [u][color="RoyalBlue"] ------------------------------------------------- Si certains produits doivent uniquement rattachés à une famille (sans sous famille), tu peux mettre les deux clés dans la table produit, celle concernant la sous famille n'étant remplie que si necessaire. tblProduits: IDProduit IDFamille IDSousFamille NomProduit ... ------------------------------------------------- Si tu as besoin d'une structure plus souple (Famille / sous Famille / sous sous famille; produit pouvant être catalogué à tous niveaux de l'arborescence) , il faudrait alors faire une structure réentrante sur la table Famille. tblFamille: IDFamille IDFamilleParente (qui référence l'éventuelle IDFamille de niveau supérieur) LibelléFamille [u][color="RoyalBlue"] Mais dans ce cas, c'est bcp plus complexe à exploiter ...
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version Dernière modification par mout1234 ; 22/08/2008 à 22h56 |
|
|
|
|
|
#4 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: août 2008
Messages: 32
|
merci a vous deux, mais je suis nouveau dans access.
je ne comprends pas vos: tblFamille: IDFamille IDFamilleParente (qui référence l'éventuelle IDFamille de niveau supérieur) LibelléFamille c la structure a faire, ok, mais comment? j'ai créer une table famille avec (num auto et nom de la famille), mais apres, comment faire un sous famille en parente alors.... merci Dernière modification par mout1234 ; 22/08/2008 à 22h38 |
|
|
|
|
|
#5 (permalink) |
![]() |
Je vais prendre un exemple différent du tien pour expliquer ce dont on parle : l'arbre généalogique.
Une personne peut ou pas avoir des enfants. Une personne a au plus deux parents En Modèle Conceptuel de Données, ça donne : (parents)Personnes -0,n---- Avoir----1,2- Personnes(enfants) C'est une association d'une table sur elle-même puisque nous avons ci-dessus deux fois la table Personnes. Dans ton cas, tu veux classer tes produits d'abord dans une famille, puis cette famille a éventuellement une ou des sous-famille(s), voire une ou des sous-sous-famille(s)... Donc on va faire la même chose que ci-dessus avec la table Familles Familles -0,n----Avoir----0,1- Familles(sous-familles) La table Familles aura donc la structure : Familles(FamId, FamNom, FamFamilleParente, ...) FamId est la clé primaire qui porte un numéro d'identification de la famille. FamFamilleParente est une clé étrangère qui contient l'identificateur d'une autre ligne de la table Familles. Exemple de lignes de la table : 1 / TV / null <-- null signifie qu'il n'y a rien dans cette colonne pour cette ligne 2 / HIFI / null 3 / GPS / null 4 / TV à tube cathodique / 1 <-- ici il y a l'identifiant de la famille TV 5 / TV LCD / 1 6 / TV Plasma / 1 7 / Home cinéma / 2 8 / Radio / 2 9 / Lecteur CD / 2 ... Un produit lecteur CD de telle marque et telle référence sera rattaché à la famille 9 et par extension on pourra trouver qu'il appartient aussi à la famille 2 (HIFI). Si un produit n'est rattaché qu'à une seule famille (ou sous-famille), on place l'identificateur de la famille dans la table Produit en tant que clé étrangère : Produits(ProdId, ProdNom, ProdIdFamille, ...) S'il peut être rattaché à plusieurs familles, on crée une table de jointure entre Produits et Familles qui accueille, en tant que clé primaire double, l'identificateur du produit et l'identificateur de la famille qui sont tous deux aussi des clés étrangères. Produits(ProdId, ProdNom,...) Rattacher(RattIdProduit, RattIdFamille, ...)
__________________
Philippe Leménager. Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué. Je reste ouvert aux propositions d'emploi. |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: novembre 2006
Localisation: Paris
Âge: 39
Messages: 1 697
|
Bonsoir,
Comme l'a brillamment détaillé CinePhil, la dernière solution proposée est plus souple que les autres car elle autorise de multiples cas de classification... Seulement - d'autant plus si tu débutes sous Access - cette solution me semble plus difficile à manier dans ton interface... Si tu n'as pas besoin de cette souplesse, vaut sans doute mieux opter pour la première ou seconde approche que je te proposais. Indépendamment de la solution retenue, j'ai supposé dés le début qu'un produit était rattaché à une seule famille. Si ce n'est pas le cas... voire la fin de l'explication de CinePhil Bon courage
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
![]() |
![]() |
||
table et sous table
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|