IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

table et sous table


Sujet :

Modélisation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut table et sous table
    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. #2
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    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 ...

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    La dernière solution est conceptuellement bien meilleure car évolutive.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut
    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

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    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

Discussions similaires

  1. [AC-2010] Récupérer une valeur d'une sous-Table dans la table mère
    Par WSAL74 dans le forum Access
    Réponses: 14
    Dernier message: 18/02/2014, 14h20
  2. [AC-2010] Problème d'insertion d'une sous table dans une table
    Par acpsc dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 07/05/2013, 08h56
  3. [AC-2003] séparer une grande table en sous table par année
    Par MatAir dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/03/2011, 19h24
  4. 3 tables -> 2 sous-tables -> 1 table résultat
    Par frites.saucisse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/01/2008, 10h34
  5. Passage d'une sous-sous-table a une table liée
    Par le_gueux dans le forum 4D
    Réponses: 16
    Dernier message: 31/07/2006, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo