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

SQL Oracle Discussion :

clé primaire multiple


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 22
    Par défaut clé primaire multiple
    Bonjour à tous voila mon PB,
    j'ai 2 tables (commande et produit)
    leurs attributs sont:
    commande(#num, date_cde,tva),
    produit(#num,designation).
    elles sont reliées par une relation m:m
    je veux casser cette relation afin d'obtenir une table intesection: détailcommande(#(num_ligne,num_cde,num_prod), designation,qte).
    Ce qui me gène en fait c'est la présence du triplet #(num_ligne,num_cde,num_prod) comme clé primaire de cette table. Dans tous les exemple que j'ai eu à voir il est conseiller d'avoir au plus une clé primaire double et non triple.
    je voudrais quels sont les risques d'avoir un triplet comme clé primaire.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    A quoi correspond num_ligne ?

    Plus votre clef primaire augmente, plus l'index sera gros et coûteux à parcourir et à maintenir.
    Maintenant trois colonnes on est encore dans le domaine du raisonnable.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Citation Envoyé par yanchoux Voir le message
    je voudrais quels sont les risques d'avoir un triplet comme clé primaire.
    Les risques sont des requêtes plus longues - donc des risques de bugs plus importants - et des performances moindres.

    A priori, num_ligne constitue une clé primaire, non?

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Il n'y a aucune problème avec une clé primaire composite sur 3 champs. Les problèmes des performances sont due à 100% aux autres facteurs.
    Le choix de la clé primaire se fait par rapport à ses contraintes spécifiques: valeur obligatoire, unicité et immuabilité.

Discussions similaires

  1. suppression multiple, clé primaire multiple
    Par javaweb44 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/12/2006, 17h51
  2. creation d'une table avec une clé primaire multiple
    Par oursquetaire dans le forum Oracle
    Réponses: 2
    Dernier message: 23/12/2005, 13h29
  3. Clé primaire multiple
    Par Korskarn dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/11/2005, 09h10
  4. Access 97 - Clés primaires multiples
    Par Korskarn dans le forum Access
    Réponses: 5
    Dernier message: 09/11/2005, 11h12
  5. Clé primaire multiple
    Par befb dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 12/07/2004, 16h38

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