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 :

Problème dans mon check


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut Problème dans mon check
    Bonjour

    Soit artiste et acteur deux tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE Acteur
    ADD cONSTRAINT couple_compatible
    CHECK ((ArtistID==artiste.ArtistID )AND(Nom=artiste.Nom)AND(Nationalite=artiste.Nationalite));
    Pouvez vous m'expliquer pourquoi mon check n'est pas bon?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Ce qui n'est pas bon, c'est surtout que tu as de la redondance de données entre les tables artiste et acteur !

    Dans ta précédente discussion, je t'ai expliqué qu'il vaudrait mieux mettre en oeuvre un héritage correct ou carrément de supprimer cette table fille Acteur et de typer les artistes.

    Qu'est-ce qui te fait dire que le CHECK n'est pas bon ?
    Message d'erreur ?
    Il laisse passer de mauvaises données ?
    L'ordinateur explose ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    C'est un message d'erreur comme quoi je ne peux dire artiste.artisteID...

    Revenons sur l'héritage: je préfère plus réussir avec l'héritage... Je vous envoie par message privée le code (parce que c'est un projet à faire et que je ne veux pas que mes camarades de classe retrouvent le code pour recopier ce que j'ai fait ). Pourriez vous me dire où se situe le problème dans mon code svp? Merci d'avance

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Mais comment gérer l'héritage soi même? Parce qu'en cours on a vu que la méthode inherits...

    Pouvez vous m'éclaircir sur ce point?

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    La réponse est dans ce message de l'autre discussion.
    Tu crées les tables sans INHERITS mais seulement avec les clés étrangères.

    Ceci dit :
    (parce que c'est un projet à faire et que je ne veux pas que mes camarades de classe retrouvent le code pour recopier ce que j'ai fait )
    Si on t'impose dans cet exercice d'utiliser INHERITS, je ne voudrais pas être la cause d'un beau zéro !

    Si tu es libre de ne pas utiliser l'héritage, relis mon message, tu n'as à mon avis pas besoin d'héritage !
    J'ai vu dans la structure que tu m'as envoyée que tu ajoute une colonne à la table réalisateur pour stocker le nombre de films réalisés. C'est en principe une propriété calculable qui n'a pas à être stockée en BDD. Donc jusqu'à preuve du contraire, l'héritage dans ce cas précis n'a aucun intérêt puisque les acteurs et les réalisateurs n'ont pas d'attributs spécifiques par rapport à un réalisateur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Tu m'avais dis dans l'ancien message que

    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.
    Mais problème : comment récuperer son id? Et personnellement faudrait pas récuperer le triplet (artisteid,nom ,nationalité)? (ce n'est qu'une suggestion)

    Ps: je t'ai envoyé le sujet par message privée pour que tu puisse voir que l'hértage est obligatoire d'après le sujet... (page 1)

Discussions similaires

  1. [PHP-JS] problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 08h57
  2. problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2007, 16h40
  3. Réponses: 13
    Dernier message: 17/10/2006, 15h35
  4. Problème dans mon JSP
    Par johnpelu dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 02/06/2006, 14h45
  5. [MySQL] Problème dans mon script de pagination
    Par speedylol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/11/2005, 19h37

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