Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 15h06   #1
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 17
Points : 17
Par défaut Problème héritage clé primaire

Bonjour,

Je présente mon problème : soit trois tables Artiste, Acteur et réalisateur...
Acteur et réalisateur sont deux tables qui héritent les colonnes d'Artiste...
Je rajoute le nuplet
5- Matt Damon dans acteur (5 est la clé primaire acteurID)
et
5- Clint Eastwood dans réalisateur (5 est la clé primaire réalisateurID)

Problème j'ai dans la table Artiste
5-Matt Damon
5-Clint Eastwood

Pouvez vous m'aidez?

Si par hasard, vous voulez mon code demandez le moi par message privé svp
Merci.
bsangoku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 15h24   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Citation:
soit trois tables Artiste, Acteur et réalisateur...
Acteur et réalisateur sont deux tables qui héritent les colonnes d'Artiste...
Tu as donc ce MCD :
Acteur -(1,1)----Etre----0,1- Artiste
Réalisateur -(1,1)----Etre----0,1-|

Ce qui donne par exemple les tables suivantes :
Artiste (art_id, art_nom...)
Acteur (act_id_artiste...)
Realisateur (rea_id_artiste...)

act_id_artiste et rea_id_artiste sont à la fois clé primaire et clé étrangère référençant art_id de la table artiste.

Le processus normal est de créer d'abord l'artiste puis de récupérer son id afin de l'utiliser pour alimenter la table fille.

Si tu as pu enregistrer un acteur 5 sans qu'il existe un artiste 5 c'est que tu n'as pas mis en oeuvre les clés étrangères telles que je les ai données ci-dessus, issues de l'identification relative du MCD (cardinalités 1,1 entre parenthèses).

Au fait, quels attributs particuliers aux acteurs et aux réalisateurs justifient l'utilisation d'un héritage ?
Dans ma BDD perso, j'ai tout simplement ceci :
Artiste -0,n----Participer----0,n- Film
Fonction -0,n-------|

Ainsi, Woody Allen peut être à la fois acteur et réalisateur de certains de ses films par exemple.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 20h17   #3
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 17
Points : 17
Ok avec ta remarque: ça m'a permis de mieux comprendre l'héritage.

Cependant, pourrais t'on empêcher l'utilisateur à ne pas écrire de nupplet absent dans la table Artiste?
bsangoku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 22h42   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par bsangoku Voir le message
Cependant, pourrais t'on empêcher l'utilisateur à ne pas écrire de nupplet absent dans la table Artiste?
Ben si, comme il se devrait, la clé primaire de la table fille est aussi une clé étrangère, et si, comme il se devrait, les clés étrangères sont activées sur ton SGBD, et si, comme il se devrait, les clés étrangères ne peuvent pas être à NULL, c'est justement à ça que servent les clés étrangères !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h51.


 
 
 
 
Partenaires

Hébergement Web