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

Autres Discussion :

[Win'Design] Créer une clé secondaire 0,n 0,n


Sujet :

Autres

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut [Win'Design] Créer une clé secondaire 0,n 0,n
    Dans windesign j'ai deux tables qui sont réliés par une lation 0, de chaque côtés.

    Au moment de le transformer en modèle logique, ca me créé une clé primaire avec les deux clés étrangeres.

    Or dans mon contexte il est possible d'avoir plusieurs fois les deux mêmes clés étrangères, or comme ca me fait la même clé primaire, ca me fait des erreurs. Vu que j'utilise Win Design comme concepteur de script SQL ce qui me fait que j'ai les clés primaire.

    Comment faire pour que mon couple de clé étrangere ne devienne pas une clé primaire ?

    Merci

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Salut,

    C'est à dire que tu as une table de jointure dont la clé primaire est composé du couple de clé étrangère ?

    il n'y a pas d'option dans windesign pour préciser les options de passage au MLD ? un des intervenant sur ce forum "Nanci" est a priori l'un des pères de ce produit si j'en crois le livre que je possède et il pourra s'en doute en dire plus

    @+

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Le moyen que j'utilise pour éviter le probleme, c'est que dans la relation je rajoute une clé primaire qui s'autoincrémente. Ainsi je peux avoir plusieurs fois le même coules de clés étrangeres, mais je ne sais pas si c'est uneméthode propre.

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Perso,

    je n'en vois pas d'autre et je mettrai un index sur le couple de clé étrangère

    @+

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Pas besoin de mettre un index, vu que se sont des clés primaires. Je ne pense pas qu'on peut coupler.

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Oberown
    Pas besoin de mettre un index, vu que se sont des clés primaires. Je ne pense pas qu'on peut coupler.
    si, dans la table de jointure il n'y a pas d'index sur les clé étrangères

    si tu as des requêtes qui accède aux enregistrements vi ce couple de clé, il peut être intéressant d'y mettre un index

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    [quote="Nohant"]
    Citation Envoyé par Oberown
    Pas besoin de mettre un index, vu que se sont des clés primaires. Je ne pense pas qu'on peut coupler.
    si, dans la table de jointure il n'y a pas d'index sur les clé étrangères/quote]

    Oui mais là je parle de clés primaire.

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Et si on arrêtait de confondre MCD (entité, relation) et MLD (tables, clés primaires, clés étrangères) !
    Et si on modélisait correctement avant de "bidouiller" et d'incriminer les outils qui ne font qu'appliquer des règles...

    Le problème posé s'explique parfaitement au niveau conceptuel
    et les transformations en logique suivent sans problèmes.

    1/ Une relation entre deux entités
    Ex


    Rappelons que, par définition d'une relation, pour 1 personne et 1 véhicule il n'y a qu'1 occurrence de "emprunter".


    La transformation en relationnel est donc la suivante


    Pour respecter la contrainte de définition d'une relation conceptuelle, il est donc tout à fait normal d'avoir, pour la table EMPRUNTER, une clé primaire composée des deux clés étrangères.

    Donc si Oberown modélise une relation 0,n - 0,n entre deux entités
    - il ne devrait pas s'étonner de voir la relation avec comme clé primaire le couple des clés étrangères
    - il ne devrait pas s'attendre à avoir plusieurs occurrences de la table de corresponsant à la relation

    Si l'association entre un couple d'occurrences d'entités à plusieurs occurences , c'est qu'il ne faut pas la modéliser comme une relation !

    Plusieurs situations peuvent se présenter:
    - une relation ternaire
    - une entité reliées aux entités initiales

    2/ Modélisation comme une entité
    Voici quelques variations possibles:






    Dans les deux cas, on a en fait modélisé un Emprunt de voiture, entité pour laquelle on ne s'est pas trop interrogé sur l'identification.

    Comme toujours, il faut se poser la question "qu'est ce que je modélise" (MCD) avant de résoudre "comment je l'implémente" (MLD).

    Au niveau MLD relationnel, on a que des tables et des liens référentiels, et l'on ne soucie pas de la sémantique (une table est un ensemble nommé d'attributs)
    Au niveau conceptuel, on différencie sémantiquement entité (ensemble d'objets d'intérêt) et les relations (simple association entre des entités)
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Comment réouvrir le [design] d'une form secondaire
    Par canyouhelpme dans le forum VB.NET
    Réponses: 3
    Dernier message: 06/05/2013, 17h41
  2. Réponses: 2
    Dernier message: 20/03/2009, 09h11
  3. [Win'Design] Créer événement date
    Par touronster dans le forum Autres
    Réponses: 2
    Dernier message: 29/01/2009, 16h24
  4. Créer une fenêtre secondaire ?
    Par Invité dans le forum SDL
    Réponses: 2
    Dernier message: 03/11/2006, 19h54
  5. Réponses: 1
    Dernier message: 17/10/2005, 10h34

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