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 19/01/2012, 11h16   #1
Invité régulier
 
trabelsi marwen
Inscription : février 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : trabelsi marwen

Informations forums :
Inscription : février 2011
Messages : 17
Points : 5
Points : 5
Par défaut Demande avis : Innodb or Myisam

Bonjour,
je suis entrain de concevoir une BD , et je suis bloqué entre le choix du Moteur... j'explique :
deux tables sont reliés entre eux, comme facture et produit, une facture est composé de plusieurs produit et un produit peut existé dans plusieurs factures, conclusion => c'est une relation n:m donne naissance d'une troisième table intermédiaire...
le contrainte ici c'est que tu supprime un produit il faut garder ce produit dans les factures(autrement dit pas de suppression en cascade).


pour satisfaire ce contrainte il ne faut pas lié les tables par un clé étrangère:
si j'utilise Myisam comme moteur, ça risque de ne pas fonctionner car je programme en Java avec des TRANSACTIONs ,et Myisam ne supporte pas les transactions :/

ma question :
si j'utilise Innobdb et sans faire des clés étrangères(autrement dit des tables autonomes) ça ne cause pas des problèmes si je fait des jointures ??
le point fort c'est que Innobdb support les transactions voilà .

Merci d'avance.
marwen109 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 11h30   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Citation:
Envoyé par marwen109 Voir le message
Bonjour,
je suis entrain de concevoir une BD , et je suis bloqué entre le choix du Moteur... j'explique :
deux tables sont reliés entre eux, comme facture et produit, une facture est composé de plusieurs produit et un produit peut existé dans plusieurs factures, conclusion => c'est une relation n:m donne naissance d'une troisième table intermédiaire...
le contrainte ici c'est que tu supprime un produit il faut garder ce produit dans les factures(autrement dit pas de suppression en cascade).


.
Bonjour,

Vous avez un problème fonctionnel (et de conception par la même occasion) là.

Un produit ne doit pas être supprimable (au sens physique du terme) tant qu'il est encore présent dans une facture !

Par contre il peut avoir un statut "annuler" ou "obsolete" ou .. qui vous permetra de ne plus le proposer à la vente.

Ensuite une fois les batch d'archivages passé vous pourrez déplacer ces produits par la même occasion (où les supprimer si certaine facture sont réellement supprimée physiquement).

Ensuite pour le problème de base :
Citation:
pour satisfaire ce contrainte il ne faut pas lié les tables par un clé étrangère:
Vu au dessus, il faut utiliser les clef étrangères.

Citation:
si j'utilise Innobdb et sans faire des clés étrangères(autrement dit des tables autonomes) ça ne cause pas des problèmes si je fait des jointures ??
Non le problème ne viendra pas des jointures (ce sont les indexs qui sont important pour ça) mais le problème viendra de l'intégrité des données !

Vous pourrez suite à un bug ou autre insérer / updater certaine table sans qu'une référence n'existe, ou supprimer par inadvertance un produit ..
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/01/2012, 11h51   #3
Invité régulier
 
trabelsi marwen
Inscription : février 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : trabelsi marwen

Informations forums :
Inscription : février 2011
Messages : 17
Points : 5
Points : 5
salut,
a mon dernier réflexion oui je dois pas supprimer les produits, et comme tu a dit je dois faire un champs par exemple "statu" qui me donne l'information sur le produit...
Merci pour le support
marwen109 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web