Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes 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 09/06/2011, 16h45   #1
 
Inscription : avril 2010
Messages : 123
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 123
Points : -8
Points : -8
Par défaut sql server cascade probleme

Bonjour,

j'ai un probleme de suppression des données :

j'ai la table Products : productID, ProductName, ProductImageID, Price, Description

et la table ProductImage : ProductImageID, ProductImage

J'ai appliqué cascade entre les deux tables.
quand je supprime une ligne dans la table ProductImage, tous les lignes dans la table product qui portent la meme clé ProductImageID se suppriment automaticament.

la question est que j'ai besoin du contraire c'est a dire quand je supprime un produit, tous les images de ce produit se suppriment automaticament.
windows2056 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h15   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

Heu... et si cette image est également referencée par d'autre produits que celui supprimé, votre cascade va supprimer tous ces produits.

Donc en supprimant un produit, vous supprimerez tous les produits qui ont la même image...

Mais je pense que vous avez un problème de conception !

Citation:
tous les images de ce produit se suppriment automaticament
D'après la structure de vos tables, un produit ne peut avoir qu'une seule image ! est-ce bien le cas ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h33   #3
 
Inscription : avril 2010
Messages : 123
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 123
Points : -8
Points : -8
Par défaut sql server cascade probleme

voila ce que j'ai besoin :

quand je supprime un produit, toutes les images de ce produits se suppriment, car chaque produits contient plusieurs images.
windows2056 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h43   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
car chaque produits contient plusieurs images
Donc comme je disais, votre modèle est faux.

est-ce qu'une image peut appartenir aussi à plusieurs produits ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h52   #5
 
Inscription : avril 2010
Messages : 123
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 123
Points : -8
Points : -8
Par défaut sql server

oui une image peut appartenir a plusieurs produits mais avec id different.
windows2056 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 18h20   #6
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573


voulez-vous dire par la qu'une même photo peut être utilisée pour illustrer plusieurs produits, mais que dans ce cas, cela donne plusieurs lignes dans la table image (pour en fait la même image) ?

...

Toujours est-il qu'avec votre modèle, un produit ne peut avoir qu'une seule image !
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 09h31   #7
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
Vous avez mis la clause "ON DELETE CASCADE" pour la table Products plutôt que la table ProductImage.

Donc mettez "ON DELETE CASCADE" pour table ProductImage.
Et pour la table Products mettez "ON DELETE SET NULL"
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 11h31   #8
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Comme aieeeuuuuu je ne comprends pas votre modèle?

A moins que la colonne ProductImageID de la table product représente l'image par défaut ou principale parmi les images présentent dans la table productImage pour ce product?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 16h03   #9
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Si un produit peut avoir plusieurs images et qu'une image peut appartenir à plusieurs produits alors vous êtes dans une relation de type n-n et il manque une entité association entre les entités produits et images.

Est ce que vous pouvez nous fournir votre modèle ?

++
mikedavem 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 15h59.


 
 
 
 
Partenaires

Hébergement Web