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 :

Petite question sur les relation N-N


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Petite question sur les relation N-N
    Bonjour,

    J'ai un petit problème avec une relation N-N en effet j'ai deux tables (bien et commodite) qui sont liés par une relation N-N donc forcement j'ai créé une nouvelle table qui les lie entre elles (propose_commodite).

    On doit pouvoir ajouter ou supprimer les commodité proposé par le bien (en gros modifier la table commodité)

    J'aimerais savoir s'il est possible de supprimer une entré de la table propose_commodite ou alors s'il existe une bidouille pour éviter d'obtenir des erreurs de type constraint violation ??

    Merci d'avance, j'espère que j'ai été clair

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous pouvez faire des suppressions logiques plutôt que phyiques (créez un champ DEL par exemple et le mettre à 1 quand vous faite la suppression logique).

    Si vous tenez vraiment à la suppression physique, quand vous déclarez votre clef étrangère vous devez préciser une option de type ON CASCADE DELETE (j'écris sans vérifier ma syntaxe, mais c'est l'idée).

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En effet j'avais penser à la suppresion logique mais c'est vrai que je serai plus intéresser la une suppresion physique !

    Mais logiquement, le fait de mettre une action ON DELETE sa devrait me supprimer le bien et la liste des commodités qui lui est associée non? Enfin merci déjà pour ces renseignements...

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par arn000 Voir le message
    j'ai deux tables (bien et commodite) qui sont liés par une relation N-N donc forcement j'ai créé une nouvelle table qui les lie entre elles (propose_commodite).
    Schéma MCD :
    bien -0,n----Proposer----0,n- commodite

    Tables (exemple) :
    bien(b_Id, b_nom...)
    commodite(c_Id, c_nom, ...)
    propose_commodite(bc_IdBien, bc_IdCommodite, ...)

    On doit pouvoir ajouter ou supprimer les commodité proposé par le bien (en gros modifier la table commodité)
    Non ! La commodité pouvant être proposée par plusieurs bien, si vous modifiez la commodité à partir d'un bien, vous la modifiez pour tous les biens qui la proposent !
    Si vous avez des données qui sont spécifiques à l'association entre bien et commodite, il faut les mettre dans la table associative propose_commodite.

    J'aimerais savoir s'il est possible de supprimer une entré de la table propose_commodite
    Normalement c'est sans problème puisque c'est propose_commodite qui dépend des deux autres tables.
    ou alors s'il existe une bidouille pour éviter d'obtenir des erreurs de type constraint violation ??
    Schéma des tables, requête et message d'erreur SVP !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Normalement c'est sans problème puisque c'est propose_commodite qui dépend des deux autres tables.
    oulla, mille excuse, je viens de m'appercevoir que j'ai totalement buggé (j'ai mal indentifié mon erreur). Désolé pour le post inutile et merci CinePhil, j'aurais pu batailler encore longtemps pour rien !!!!

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

Discussions similaires

  1. Petite question sur les conventions de nommage en Java
    Par implosion dans le forum Langage
    Réponses: 7
    Dernier message: 18/01/2006, 15h54
  2. Petites question sur les onglets...
    Par jarod_bx dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2005, 18h45
  3. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  4. Réponses: 3
    Dernier message: 08/12/2004, 13h58
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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