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

Développement SQL Server Discussion :

problème avec clé étrangère


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Aménagement
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Aménagement
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 9
    Points
    9
    Par défaut problème avec clé étrangère
    Bonjour,
    j'ai 3 tables, T1, T2, T3
    les clés premières pour les 3 tables sont identiques au niveau du nom 'OBJECTID' et le type "Integer": en effet ces clés premières sont automatiques et ils sont non modifiables. à chaque insertion d'une ligne dans la table on a un nouveau OBJECTID, si on supprime cette ligne, la valeur de son OBJECTID ne sera pas attribuée à une autre ligne.
    T1 contiendra les routes
    T2 contiendra le chemin de fer
    T3 contiendra le cours d'eau

    ces tables ont des relations passe-sur et passe-sous entre elles et entre les objets de la même table: exemple: une route passe-sur une route...

    1ère solution j'ai crée des tables passe-sur et passe-sous pour chaque table avec OBJECTID de la table comme clé étrangère: l'inconvénient réside dans le nombre des tables à ajoutés qui est 9 tables ce qui va encombrer la base de données qui contient déjà plusieurs tables.

    2ème solution: j'ai crée deux tables passe-sur et passe-sous. la clé étrangère pour chaque table est OBJECTID de T1 ou T2 ou T3. mais OBJECTID de T1 peut être identique au OBJECTID T2 ou T3... alors on a recours à une deuxième clé étrangère qui doit être unique pour chaque table T1, T2, T3, ainsi on doit ajouter à ces tables une deuxième clé étrangère mais cette solution va encombrer les tables par une nouvelle colonne.

    y-a-t-il une autre solution SVP?
    Si non la quelle de deux solutions proposées doit je utiliser?

    Merci

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    T1, T2 et T3 sont radicalement différentes ? ou peut etre est il possible de ne faire qu'une table, avec une colone de typage (route, fer, eau, ...)
    Dans ce cas, votre solution 2 devient valide.

    Ce n'est qu'une idée, mais sans autre info de votre part, c'est pas simple

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  3. #3
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    l'inconvénient réside dans le nombre des tables à ajoutés qui est 9 tables ce qui va encombrer la base de données qui contient déjà plusieurs tables.
    Je ne vois pas ou est le problème?

    Vous devez faire un modèle cohérent, bien souvent une normalisation convenable entraine de nombreuses 'petites' tables.
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Je ne vois pas ou est le problème?

    Vous devez faire un modèle cohérent, bien souvent une normalisation convenable entraine de nombreuses 'petites' tables.
    Le probleme ?? Il n'est pas forcément sur la possibilité d'avoir de nombreuses tables, mais plutot sur le principe et son evolutivité : lorsqu'un nouveau moyen de transport devra etre géré (par exemple air), il faudra des lors modifier l'architecture de la base de données (creation d'une nouvelle table 'AIR', création des tables d'association...).
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  5. #5
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Le probleme ?? Il n'est pas forcément sur la possibilité d'avoir de nombreuses tables, mais plutot sur le principe et son evolutivité : lorsqu'un nouveau moyen de transport devra etre géré (par exemple air), il faudra des lors modifier l'architecture de la base de données (creation d'une nouvelle table 'AIR', création des tables d'association...).
    Tout a fait d'accord avec vous... je ne remettais pas en question votre proposition sommes toute cohérente mais je soulevais simplement son affirmation: la multiplication des tables dans une base n'est pas un problème, au contraire... or c'est l'argument qu'il semblait mettre en avant...
    C'est avant tout la cohérence du modèle qui importe.

    Ici clairement , le modèle ne permet pas de gérer l'ajout d'un nouveau type de voirie... contrairement au modèle que vous proposez...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Aménagement
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Aménagement
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Merci aux experts, alors j'utiliserai la 1ère solution puisque il est vraie que le modèle est fixe et les types sont prédéfinis.
    Merci Yanika_bzh
    Merci iberserk

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

Discussions similaires

  1. Problème avec clé étrangère
    Par felix01 dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/07/2013, 14h59
  2. Problème avec clefs étrangères
    Par tomy29 dans le forum Hibernate
    Réponses: 5
    Dernier message: 05/11/2008, 17h42
  3. Réponses: 1
    Dernier message: 21/11/2007, 14h35
  4. Problème avec les clés étrangères
    Par PoichOU dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 06/11/2007, 09h46
  5. Problème avec clé étrangère
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/02/2007, 16h50

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