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

Schéma Discussion :

mauvaise conception et changement de clé primaire


Sujet :

Schéma

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 54
    Points : 52
    Points
    52
    Par défaut mauvaise conception et changement de clé primaire
    Bonjour,

    Suite à une mauvaise conception de la base de données, je me suis aperçu que la clé primaire d'une table n'était pas suffisante :
    on peut avoir plus de 1 enregistrement identique, pour une clé primaire, mais avec un champ qui diffère, ce qui me laisse penser qu'il faudrait "étendre" la clé primaire avec ce champ, qui permettrait d'avoir une "vraie" clé primaire .

    Etant donné que l'application utilisant la base de données est intégralement développée, et que des requêtes basées sur la clé primaire actuelle de cette table sont utilisées dans de multiples endroits de l'application, je me demandais s'il y avait un autre moyen que la réécriture de code...

    Toute suggestion est la bienvenue pour résoudre ou contourner ce problème.

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Crées un nouveau champ en numérotation automatique. Il servira de clé primaire.
    Refais tes liens avec.
    Crées un index unique multi-champs sur tes deux champs.
    Ensuite, tu n'as plus qu'à faire un edition -remplacer pour un seul champ dans ton programme.

    et redistribuer la nouvelle version.

    De toute façons, il manque un champ, ou au moins, il faut faire une modif, alors, ton programme devra la refléter !

  3. #3
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 54
    Points : 52
    Points
    52
    Par défaut merci
    Je pense que je vais appliquer ta méthode, même si il faudra réécrire pas mal de code.

    Je précise que je travaille sous Oracle 8i.

    Un chef de projet peut versé dans la technique m'a suggéré "qu'on pourrait supprimer la clé primaire".
    Je suis resté sans voix...
    Qu'est-ce que tu en penses ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Une cle primaire peut etre composee de multiples champs (c'est le cas dans les tables de lien, par exemple). D'un point de vue conceptuel, c'est acceptable, mais d'un point de vue pratique, ca vous oblige a quelques lourdeurs quant a la gestion des clefs etrangeres pointant sur cette clef primaire. Le fait de passer par une clef alternative incrementale est souvent la solution de facilite adoptee.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Quant à supprimer la clé primaire, ton chef de projet, tu lui mets une balle tout de suite, ou on attend un peu ?



    [EDIT]

    Réflexion faite ... c'est pas mal !
    On pourrait pousser encore plus loin la reflexion...
    Essaie de transformer ta base au format Word ...

    [/EDIT]

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

Discussions similaires

  1. [XL-2010] Mauvaise gestion du changement de mois
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2011, 15h57
  2. Mauvaise conception ou cerveau fatigué ?
    Par titibob_94ko dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/05/2010, 18h35
  3. [PHP 5.2] Héritage multiple obligatoire ou mauvaise conception ?
    Par sinasquax dans le forum Langage
    Réponses: 2
    Dernier message: 19/01/2010, 02h31
  4. Réponses: 4
    Dernier message: 22/09/2006, 12h33
  5. changement de clé primaire
    Par popopopo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/08/2005, 11h08

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