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

Requêtes et SQL. Discussion :

Relation Pére/fils Création [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut Relation Pére/fils Création
    Bonsoir Messieurs , Mesdames

    Maintenant je dois créer manuellement une table

    voici les codes nécessaires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    Create Table Contactsuivant 
    (Num_Ct long primary key  , 
    Nature Varchar(20));
     
    Create Table Candidat 
    (Num_Can Long primary key,
    Numlycee long , 
    Num_con Long , 
    numev Long,
    numbac Long,
    Constraint ref_Lycee Foreign Key (Numlycee) references Lycee(NumLyc) ,
    Constraint ref_Connaissance Foreign Key (Num_Con) references Connaissance(Num_Con),
    Constraint ref_evenement Foreign Key (Numev) references evenement(Numev),
    Constraint ref_bac Foreign Key (Numbac) references bac(Numbac));
     
    Create Table EtudiantContact 
    (Num_Can Long , 
    Num_Con Long , 
    Constraint Clé_EtudiantContact Primary Key (Num_Can,Num_Con),
    Constraint ref_Candidat Foreign Key (Num_Can) references Candidat(Num_can),
    Constraint ref_Contactsuivant Foreign Key (Num_con) references Contactsuivant(Num_ct));
     
    Create Table Lycee 
    (Numlyc Long primary key , 
    nom varchar(20)  ,
    rue varchar(50)  ,
    ville varchar(20) ,
    cp NUMBER(5) ,
    tel NUMBER(10) ,
    email varchar(50) ,
    effectif long  ,
    type long ); 
     
    Create table Connaissance 
    (num_con Long primary key , 
    nature varchar(20) );
     
    Create table Evenement 
    (
    numev long primary key ,
    libelle varchar(20) );  
     
    Create table BAC
    (Numbac long  primary key,
    Série VarChar(20) );
     
    Create table etablissement_superieur
    (numeta long primary key ,
    nom varchar(20)  ,
    rue varchar(20)  ,
    ville varchar(20)  ,
    CP long ,
    tel long ,  
    email varchar(20)); 
     
     
     
    Create table reorientation 
    (Num_can long primary key , 
    Numeta long , 
    Constraint ref_candidat (num_can) references Candidat(num_can),
    Constraint ref_Etablissement_superieur (numeta) references Etablissement_superieur(numeta));

    Voici le schéma relationnel











    Le seul problème réside dans le fait que je veux que la relation qui relie Candidat et Reorientation soit une relation pére-fils ( en effet , il peut trés bien avoir un candidat qui ne soit pas en réorientation ).

    Que faire pour une relation pére fils ?

    Cordialement ( encore 1 jour et mon projet est terminé XD )

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Je ne comprends pas bien tes liaisons.

    Telle que tu la représentes, la table "Réorientation" ne sert à rien, puisque tu as une relation 1:N, et tu pourrais avoir simplement une clé externe dans "Candidats" qui pointe vers "Etablissement_Supéririeur". Dans ce cas, tu peux sans problème utiliser des formulaires/sous-formulaires (ou étas/sous-états) dans les deux directions.

    La table intermédiaire "Réorientation" n'est utile que dans le cas d'une relation de plusieurs à plusieurs, et il serait alors judicieux de créer la clé primaire sur les les deux champs, pour éviter de créer des paires identiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "Create table reorientation(Num_can long not null ,Numeta long not null, constraint PK primary key (num_can, numeta))"

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour

    En fait , j'ai omis des champs inutile ( je les rajouterai au fur et à mesure )
    par exemple pour réorientation , il y a Num_can , Numeta , Dipl_prep , Annee_dipl ...
    J'ai simplifié le schéma pour des raisons de lisibilité.

    Je ne peux pas décider si telle clé est primaire ou pas car l'énoncé m'a expliqué une liste de clé primaires à créer.

    Cordialement.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Je ne comprends pas mieux ton problème.

    Soit ta table Réorientation est simplement une "extension" de ta table candidats et je ne vois pas de problèmes aux relations telles que tu les as créées, et tu as alors une relation "un à plusieurs" de la table candidats vers la table Etablissements supérieurs, soit tu veux pouvoir définir plusieurs réorientations pour un élève (tu as alors une relation de plusieurs à plusieurs) et tu peux créer tes relations comme je te l'ai montré, pour avoir une clé primaire multi-colonnes sur la table Réorientation

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour

    Merci pour votre réponse , j'ai fini par comprendre . Le fait que je mette une relation pére-fils ou non , ne changera pas grand chose puisque les données que je vais manipuler ne sont pas importantes.


    Cordialement

    Encore merci pour votre réponse

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Heu... Ta réponse m'étonne (Comme mes données ne sont pas importantes, je n'ai pas besoin de me préoccuper des relations )

    Il n'y a pas de relations "père-fils". Tu peux créer, avec Access, des formulaires "père-fils" ou des états "père-fils", mais pas des relations "père-fils".

    Tu peux "juste" créer des relations 1:N ou M:N:

    1:N entre deux tables, une clé externe d'une table pointant vers la clé primaire de la deuxième table.

    M:N entre deux tables, grâce à une table intermédiaire entre les deux, dont la clé primaire est souvent créée par les deux clés externes pointant vers les deux tables d'origine.

    Enfin, si tu peux te satisfaire du fait que tes relations ne sont pas importantes car les données ne le sont pas, je ne vais pas perdre plus de temps avec toi...

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

Discussions similaires

  1. [Mapping] Relation père fils sur une même table.
    Par Invité dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/06/2008, 18h14
  2. [MySQL] Relation père-fils en PHP et MySQL
    Par nabians dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/07/2007, 12h02
  3. Formulaire sous-formulaire: relation père fils
    Par Zinemon dans le forum IHM
    Réponses: 5
    Dernier message: 27/06/2007, 11h14
  4. Table avec lignes ayant une relation "père-fils"
    Par the java lover dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/04/2007, 12h20
  5. [pthread] relation père - fils ?
    Par jedimind dans le forum C
    Réponses: 3
    Dernier message: 14/11/2005, 12h18

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