djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012
-
15 févr. 2012 à 16:15
djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012
-
17 févr. 2012 à 15:26
Bonjour ,
je suis débutant en sql et il me faut develloper une petite base de donnée pour un site internet .
voila le lien de l'image avec une partie du mcd : ici
Dans un premier temps j'aimerais savoir si j'ai bien conçue celon vous cette partie de mcd .
Et t'il possible ensuite de me donner un exemple de création de script ( jointure ou autre) a creer entre la table mere ( produits ) et la table fille ( carte mere par exemple )
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 16 févr. 2012 à 15:15
Salut,
ton MCD me parait pas si pire, pour ce qui est de la partie SGBD ça va dépendre de comment tu veux faire ton MLD, il existe plusieurs possibilité. Je te laisse regarder ce lien où tu devrais trouver ton bonheur.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 17 févr. 2012 à 10:53
Re,
que ce soit la table GC ou MB ça change pas grand chose ^^
Alors petite chose sur tes CREATE, je sais pas quel SGBD tu utilises mais pour certains il te faut nécessairement une clé primaire (ce qui n'est pas le cas dans ta table "dérivée").
Pour ce qui est du nouveau schéma que tu as fait il est maintenant plus proche du MLD que du MCD.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 17 févr. 2012 à 11:12
Oui, un id int not null auto_increment référencé en primary key sur chacune de tes tables "dérivées". Ou si tes valeurs du champ `reference` sont uniques tu peux le déclarer comme clé primaire.
Attention, certains SGBD n'ont pas besoin de clé primaire (c'est le cas d'Access il me semble). Par contre, même pour ces SGBD, une clé primaire peut être pratique car elle permettra d'accéder à coup sûr à un enregistrement précis (pour l'update ou le delete), ce qui n'est pas nécessairement possible si aucun des tes autres champs n'est unique.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 17 févr. 2012 à 11:58
Pour connaitre toutes les cartes mères avec un socket 1366 que tu as référencées, tu n'as pas besoin de passer par ta table `produits`.
Par contre si tu veux connaitre toutes les cartes mères avec un socket 1366 ET leur libellé/marque/quantité (les champs de `produits`) alors oui, il faut faire une jointure. Et pour ceci ta requête me parait correcte.
Vous n’avez pas trouvé la réponse que vous recherchez ?
djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012 16 févr. 2012 à 18:07
je te remercie . je regarde tous ceci en profondeur et je reviens a la charge avec une partie du code qui s'applique a mon cas pour voir si je ne fait pas d'hors sujet =D
djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012 17 févr. 2012 à 14:02
Je te remmercie de tous tes conseils . si j'ai besion un peu d'aide je reviendrais poser une question sur ce sujet ( si le c'est en rapport bien entendu ) =) . encore une fois merci =)
djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012 17 févr. 2012 à 14:39
ahah je suis deja de retour
bon voila la question est peu etre toute bete mais je prefere demander .
lorsque je veut faire par exemple un insert pour rajouter un produit , comment je procede ?
je m'explique : etant donnée que des information de mon produits ce trouve a la fois dans produits et ma table "dérivée" comment je dois code mon insert pour que les données ce trouvent dans produits et la fameuse classe "dérivée"
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 17 févr. 2012 à 14:59
Je vois pas bien comment le faire en une requête, à voir avec d'autres helpers qui suivraient le fil de la discussion. Perso j'imagine l'insertion en 3 requêtes :
- insert d'un tuple dans la table `produits`,
- select dudit tuple créé pour récupéré l'id auto_incrémenté,
- insert d'un tuple dans la table "dérivée" avec l'id récupéré plus tôt.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 17 févr. 2012 à 15:13
Tu peux effectivement faire une procédure stockée qui gérera les 3 requêtes.
Et pour bien faire tu peux même le faire lors d'une transaction, histoire que si une des 3 requêtes ne passe pas alors la totalité du processus est annulé.