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 :

J'ai rencontré un probleme quand j'essaie de créer des relations entre les tables d'une base


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Rwanda

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut J'ai rencontré un probleme quand j'essaie de créer des relations entre les tables d'une base
    Je travaille sous SQL Server 2008 cree la base de donnee denommee CSE_DEPT elle contient 5 tables denommees : Course,faculty,LogIn,Student,StudentCourse.

    je suis en train de creer les relations entre les tables

    1) j ai pu creer les relations suivantes : Student/StudentCourse ; LogIn/Student ; Login/faculty sans problèmes.


    2) Lorsque j essaie de creer une relation suivante faculty/Course

    je reçois le message d erreur suivant :

    Unable to create relationship 'FK_Course_faculty'.
    The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Course_faculty". The conflict occurred in database "CSE_DEPT", table "dbo.faculty", column 'faculty_id'.
    3) Lorsque j'essaie de créer la relation suivante Course/StudentCourse :

    je reçois le message d'erreur suivant

    - Unable to create relationship 'FK_Course_faculty'.
    The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Course_faculty". The conflict occurred in database "CSE_DEPT", table "dbo.faculty", column 'faculty_id'.
    Pouvez vous m'aider j'ai du mal à comprendre d'où vient l'erreur. Apparemment de la table Faculty, mais il s'agit d'une petite table d'à peine 15 lignes je l'ai regardée sans rien dénicher..Sa clé primaire faculty_id est nvarchar(50). Y a-t-il quelque chose à ajouter ?

    Lors de la création des relations effectuées avec succès (au niveau du point n°1) j'ai choisi les options de respect de l’intégrité référentielle lors des opérations de mise à jour et de suppression ( en sélectionnant à chaque fois l'option CASCADE)

    S'il vous plait aidez moi à résoudre ce problème.



    Merci d avance

    Cordialement

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Il aurait fallu que vous donniez le DDL des tables et surtout les instructions qui génèrent ces messages.
    Il semble qu'il y a une ligne de Course pour laquelle la valeur de la colonne FacultyID n'existe pas dans la colonne FacultyID de la table Faculty

    Sa clé primaire faculty_id est nvarchar(50)
    S'il s'agit d'un entier, il aurait fallu le stocker sous un type entier.
    Par ailleurs les clé primaires de type non-entier sont un mauvais choix, car elles ne facilitent pas les jointures.
    Aussi, la fragmentation de l'index sous-jacent à la clé primaire sera nécessairement élevée, puisque les valeurs de celle-ci ne sont pas contigües.
    L'idéal est qu'elles soient constamment croissantes, comme on peut le faire avec la propriété IDENTITY (ou par dérivation SEQUENCE).

    Enfin, je doute qu'une telle colonne stocke des caractères non-Latins; or une colonne de type nvarchar utilise Unicode, qui utilise deux octets pour stocker un caractère, de quelque alphabet qu'il provienne.
    Si l'on doit donc stocker une chaîne dont on est certain qu'elle ne contiendra jamais de caractères non-Latins, on peut utiliser le type varchar, qui lui utilise la table ASCII, et donc un octet par caractère.
    Pour plus de détails, vous pouvez lire ce petit billet.

    @++

Discussions similaires

  1. [AC-2003] Probleme de relation entre mes tables
    Par kesamba dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/05/2012, 18h30
  2. Probleme de liaison entre un formulaire et une base de données chez OVH
    Par Raphaelphp dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 29/11/2011, 12h22
  3. Probleme de relation entre deux tables
    Par Mimisio dans le forum Modélisation
    Réponses: 5
    Dernier message: 17/07/2007, 14h30
  4. Probleme de liaison entre deux tables d'une base de donnees
    Par blondelle dans le forum C++Builder
    Réponses: 32
    Dernier message: 12/04/2007, 18h09
  5. Probleme quand j'essaie de reparer ma connexion reseau local
    Par dachir dans le forum Administration
    Réponses: 5
    Dernier message: 21/07/2006, 16h22

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