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 liée à toutes les autres


Sujet :

Modélisation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut Table liée à toutes les autres
    Bonjour,

    Est-il normal/fréquent qu'une table soit liée à toutes les autres ?

    Dans mon cas il s'agit d'une table "email" dont le sujet de discussion peut être lié à toutes les autres données de la base.

    Merci.

    Djo

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tout dépend de ton schéma, mais cela peut arriver.

    Le mieux est de nous mettre une copie d'écran de tes liaisons, non ?

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut
    Ben je n'ai pas encore fait les liaisons car je ne savais pas si c'était faisable.

    Petite copie d'écran mais je ne sais pas si ça va vous aider. Je vous préviens c loin d'être la dernière version...je viens juste de commencer

    http://www.cijoint.fr/cjlink.php?fil...cijPYkLo8X.jpg

    Merci.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut

    ça fait peur ?

    Ma question est juste de savoir si une table "email" (qui contiendrait donc des emails ou des liens vers des emails) peut être liée à toutes les autres tables (car un email peut parler de n'importe quel sujet).

    Thanks.

    Djo

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 850
    Points : 58 362
    Points
    58 362
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par jax54000 Voir le message

    ça fait peur ?
    Terrifiant

    mais si tu as,

    Email---approuver----Document-----Concerner-----Produit

    c'est que tes règles de gestion t'ont amené à associer par deux Email--Document puis Document--Produit, non ?
    La structure des tables et des relations sont dictées par les règles de gestion, c'est tout.

    En fait, ta question n'est pas très claire. Tu peux donner un exemple de ce qui te tracasses ? (avec 2-3 tables hein! pas plus)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut
    C'est bien ce que je me disais...ça fait peur

    Exemple:

    4 tables : Produits, Non-conformités, Commandes, Emails,

    Un email peut parler d'un produit spécifique
    Un email peut parler d'une non-conformité spécifique
    Un email peut parler d'une commande spécifique
    ...

    Ce qui me tracasse c'est qu'effectivement un email peut parler/concerner toutes les données/tables de ma base.

    La question que je me pose alors est : dois-je lier cette table email à toutes les autres ?

    Idem avec la table Documents (la même problematique se pose)

    J'espère que je suis plus clair.
    Merci
    A+
    Djo

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 116
    Points : 5 242
    Points
    5 242
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    car un email peut parler de n'importe quel sujet
    signifie aussi qu'un email est rarement lié à une table donnée... Que va apporter le lien avec cette table ???

    Dans le même esprit j'ai une table "documents" qui contient l'adresse de documents liés à n'importe quel objet de ma base et cette table n'a aucun lien car je gère la cohérence quand j'écris dans la table ou quand l'utilisateur veut effacer le "père" du document. Le document a son ID et contient 2 champs pour retrouver à qui il est lié : le nom de la table du père et l'id du père

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 850
    Points : 58 362
    Points
    58 362
    Billets dans le blog
    43
    Par défaut
    bonjour à tous,

    j’essaye de recoller les morceaux avec un autre exemple qui ressemble plus ou moins à ton cas.

    Un document est transmis par Email, un Email peut transmettre plusieurs documents.
    Un document à un type (commande, livraison,….) et concerne un produit :

    Type-1------∞-Document-∞--------1-Produit
    ...........................|
    ...........................-∞--------------1-Email

    Si ton tracas était qu’un "un Email peut parler de plusieurs produits", je te rétorquerais que grâce à une requête SELECT avec les jointures Email---Document---Produit, tu pourrais remonter aux produits concernés par un Email particulier.

    Dans ce cas, raccorder directement Email à Produit serait redondant. Et la redondance est à proscrire dans une base de données…

    Bref, un Email qui "parle de n'importe quel sujet" ne semble pas être une formalisation convenable de règle de gestion.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut
    Yes mais :

    Si un email ne transmet aucun document et que son contenu concerne un produit. Il faut bien lier la table email à la table produit non ?

    Exemple d'email:
    Objet email: Evenement Produit numero de serie 11
    Corps email: Je vous annonce que le produit numéro de serie 11 est retiré de la ligne de production.

    Je voudrais pouvoir "attacher" cet email au produit 11.

    Merci de votre aide je suis total débutant pour BD.

    +

  10. #10
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 116
    Points : 5 242
    Points
    5 242
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Il faut bien lier la table email à la table produit non ?
    Il n'y a aucune obligation à lier 2 tables, le lien sert à garantir la cohérence des données mais n'est jamais obligatoire.

    Exemple : si un mail est associé à l'article 458, l'existence d'un lien peut garantir "en dur" que l'article 458 existe et ne peut plus être supprimé tant que le mail existe. Cette garantie sera plus efficace qu'un controle logiciel et incontournable, par contre la gestion des erreurs sera moins conviviale...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut
    ...Je comprends pas bien

    L'idée dans mon exemple est de pouvoir par exemple faire la requete suivante:

    Affiche moi tous les emails envoyés entre janvier et mars et qui concernaient le produit 11.

    Si je veux faire ça, on est d'accord que le lien est obligatoire ?

    Merci.

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 850
    Points : 58 362
    Points
    58 362
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par Jax54000
    ...Si je veux faire ça, on est d'accord que le lien est obligatoire ?
    Pour moi dans ce cas, il me semble tout à fait justifié.

    de même:
    Citation Envoyé par Jax54000
    Un email peut parler d'un produit spécifique
    Un email peut parler d'une non-conformité spécifique
    Un email peut parler d'une commande spécifique
    Email----0,?----parlerProduit----0,n----Produit
    Email----0,?----parlerNC-----0,n-----NonConformite
    Email----0,?----parlerCommande-----0,n----Commande

    J'ai mis un "?" sur la cardinalité maximale ne sachant pas si je devais mettre 1 ou n car un Email peut par exemple parler de plusieurs produits ? C'est possible ça, non ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 149
    Points : 49
    Points
    49
    Par défaut
    Ahhhhhhh tu me rassures !

    Oui je confirme que c'est possible qu'un email parle de plusieurs produits.

    Je commence à saisir...
    J'ai peur par contre que le nombre de liens et de tables montent en flèche...

    Merci.

    A+

  14. #14
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 116
    Points : 5 242
    Points
    5 242
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si je veux faire ça, on est d'accord que le lien est obligatoire ?
    Pas obligatoire, non... Justifié pourquoi pas ça dépend de l'application qu'il y a derrière...
    Par exemple je n'utilise pas de macros, ça a peut être un intérêt supérieur dans ce cas ? Il y a tellement de façons de programmer la même chose qu'il est difficile d'avoir une réponse absolue !

    A ma connaissance une requête inner ou left join marche aussi bien qu'il y ait un lien ou non entre les 2 tables. C'est peut-être plus rapide avec un lien (je n'ai pas la réponse à cette question) mais la syntaxe est la même et le résultat aussi.

    S'il s'agit de lier le mail à tout ce dont il parle on est plus dans l'esprit du moteur de recherche là, non ???

  15. #15
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 850
    Points : 58 362
    Points
    58 362
    Billets dans le blog
    43
    Par défaut
    bonsoir,

    Citation Envoyé par nico84 Voir le message
    A ma connaissance une requête inner ou left join marche aussi bien qu'il y ait un lien ou non entre les 2 tables. C'est peut-être plus rapide avec un lien (je n'ai pas la réponse à cette question) mais la syntaxe est la même et le résultat aussi.
    je viens de comprendre là où tu voulais en revenir.
    Lorsqu’on rajoute le "lien" -1-------∞- (ou plus rarement -1------1-) dans la fenêtre des relations d’Access, on met en œuvre un mécanisme supplémentaire qui est celui de l’intégrité référentielle.

    Citation Envoyé par nico84
    Exemple : si un mail est associé à l'article 458, l'existence d'un lien peut garantir "en dur" que l'article 458 existe et ne peut plus être supprimé tant que le mail existe. Cette garantie sera plus efficace qu'un controle logiciel et incontournable, par contre la gestion des erreurs sera moins conviviale...
    oula, l’éternel débat que je ne vais surtout pas relancer ici :

    Réflexions sur la fenêtre des relations et l'utilité de l'intégrité référentielle
    Contraintes FOREIGN KEY SQL vs code client

    Citation Envoyé par nico84 Voir le message
    S'il s'agit de lier le mail à tout ce dont il parle on est plus dans l'esprit du moteur de recherche là, non ???
    S’il s’agit de rechercher ces informations dans le corps du Mail, voilà une fonctionnalité qui pourrait intéresser Jax54000. A voir… Mais même les infos pêchées par un moteur sont "indexées" dans une base de données, non ?

  16. #16
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 116
    Points : 5 242
    Points
    5 242
    Par défaut
    Oui je pense que dans pareil cas l'intégrité référentielle n'apporte pas grand chose, et dans tous les cas elle n'est pas obligatoire.

    Pour les moteurs de recherche je pense aussi qu'ils doivent gérer de grandes quantités de liens, mais dans des tables externes (où il n'y a que des liens) et sans aucune intégrité. Une solution dans cet esprit serait a mon avis plus proche du besoin exprimé dans cette file - mais tout cela n'engage que moi

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/08/2009, 16h37
  2. Effacer une table mysql tout les...
    Par Invité dans le forum Requêtes
    Réponses: 5
    Dernier message: 31/03/2006, 11h09
  3. [JFrame] Désiconifier toutes les autres fenêtres en même temps
    Par stoukou dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/10/2005, 13h01
  4. Réponses: 1
    Dernier message: 16/02/2005, 13h04
  5. Réponses: 2
    Dernier message: 09/07/2003, 15h10

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