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

Langage SQL Discussion :

Bonnes pratiques id et code


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut Bonnes pratiques id et code
    Bonjour
    Soit
    - une table toto avec les colonnes id(number autoincrement et clé primaire), code (unique) et libellé.
    - une table mumu avec les même colonnes
    - et une table mix qui référence les deux id des tables précédentes, disons toto_id et mumu_id

    Vu que la valeur de mes id dans toto et mumu peuvent être différentes en fonction de l'increment, quand j'insère des données dans ma table mix dois-je faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO mix (toto_id, mumu_id) VALUES (
    	SELECT id FROM toto WHERE code = 'maclé' ,
    	SELECT id FROM mumu WHERE code = 'maclé'
    );
    Pourquoi ne pas utiliser dans ma table mix directement le code plutot que l'id ?
    Quels sont les avantages et inconvénients ?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    'toto', 'mumu' et 'mix' sont trop abstraits pour savoir si votre solution est pertinente parce que ceci est étonnant :
    - une table mumu avec les même colonnes
    Qui dit mêmes colonnes dit peut-être qu'en fait il s'agit sémantiquement des mêmes données. Quel intérêt alors de faire deux tables ?

    Dites-nous plus concrètement de quoi il s'agit.

    Et pour répondre quand même un peu à votre question...
    Mix est une table issue d'une association entre les deux tables toto et mumu. Il est donc logique que sa clé primaire soit formée des deux identifiants des tables issus des entités associées dans le MCD.
    Toto -0,n----mixer----0,n- Mumu

    L'identifiant est de type entier et sera plus facile à traiter par le SGBD que le code qui sera de type alpha-numérique.

  3. #3
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    je test la réponseVoici le code de la table toto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE toto (
    	id INTEGER PRIMARY KEY,
    	code CHAR(5) UNIQUE NOT NULL,
    	libelle VARCHAR2(20)
    );
    Effectivement dans la vraie vie, les tables toto et mumu sont les mêmes.

    Vous avez répondu à la question, l'intérêt est donc la PERFORMANCE !

    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/07/2010, 18h52
  2. Réponses: 4
    Dernier message: 02/02/2010, 23h49
  3. [DOM] Bonnes pratiques pour garder le code propre
    Par The Vandals dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 26/11/2008, 15h49
  4. Réponses: 4
    Dernier message: 07/10/2008, 14h16
  5. Code Source - Bonne pratique
    Par hacknisty dans le forum Débuter
    Réponses: 2
    Dernier message: 02/01/2008, 17h32

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