Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une table de commandes identifiant les produits inclus

PHP et MySQL

Sujet résolu
    14 décembre 2011 à 13:44:07

    Bonjour !

    Un moment que je ne suis plus dans le coin, je viens vous faire une petite requête ;)

    Je conçois une base de données pour un site de e-commerce, pour un projet et guise de cas d'étude pour m'exercer.

    Il y a plusieurs tables, dont :
    - produits
    - clients
    - commandes
    - factures

    Dans une commande, il peut y avoir plusieurs produits commandés :

    - Commande 1 : Produits A, B, C
    - Commande 2 : Produits A, B
    - Commande 3 : Produits A, B, C, D, E, F, G, H

    1 . Quel type de champ devrais-je créer pour que les produits soient comptabilisés ET surtout identifiables dans la table produits ?

    2. Dois-je créer de nouveaux champs "produits commandés" dans la table "commandes" si la dernière commande contient plus de produits que toutes les précédentes ? Cette technique ne me semble pas franchement optimale, je note aussi que j'aurai besoin de récupérer les derniers produits commandés (et le nombre de chaque produits commandés depuis toujours) d'un client donné.


    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2011 à 13:45:13

      Crée une table produits_commande (id_commande, id_produit)
      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2011 à 13:51:33

        Merci ça me donne une bonne piste !

        Donc en résumant côté client :

        1. Choix des produits 0, 1, 2
        2. Création de commande n°5

        produits_commande
        ID Commande ID Produits
        5 0
        5 1
        5 2


        Donc dans la table produits je n'ai pas besoin de lister les produits commandés, je les retrouve directement dans la table produits_commande ?
        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2011 à 13:53:55

          Dans la table "commande", tu n'as pas besoin de lister les produits commandés, je les retrouve directement dans la table produits_commande.

          Mais il faut bien garder une table "produit" hein. Ta dernière phrase n'est pas très claire...
          • Partager sur Facebook
          • Partager sur Twitter
            14 décembre 2011 à 13:57:07

            Oui oui je garde bien ma table produits.

            Je veux dire : dès que le client souhaite retrouver sa commande, pour lister ses produits, j'utiliserai la table produits_commande, je n'ai pas besoin de créer plusieurs champs dans commande (un par produit commandé) ?

            La question est rhétorique et mon problème est résolu je crois quoi qu'il en soit ;) Merci beaucoup !
            • Partager sur Facebook
            • Partager sur Twitter
              14 décembre 2011 à 15:51:35

              Pour les futurs personnes qui auraient ce type de problème : puisque je me suis renseigné sur la partie MCD (modèle conceptuel de données), retrouvé quelques cours de mes anciens profs (dont http://eric.univ-lyon2.fr/~kaouiche/si/mld.pdf), j'ajoute donc qu'il s'agissait en fait d'un problème de cardinalité (deux tables m:n qui peuvent être décomposées en trois tables avec deux relations 1:n)
              • Partager sur Facebook
              • Partager sur Twitter

              Une table de commandes identifiant les produits inclus

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown