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

Requêtes MySQL Discussion :

[Conception] Base de données d'un site d'E-commerce


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut [Conception] Base de données d'un site d'E-commerce
    Bonjour,

    j'ai une base de données d'un site E-commerce à créer et je eux votre avis afin de savoir si je m'y prend bien.

    Dans un premier temps, je dois modéliser les entités suivantes nécessaires à la mise en place de la bêta de ce site réservé à seulement quelques clients privilégiés:

    Un magasin
    -Porte un nom
    -A une adresse
    -A une donnée géo-spatiale
    -Possède un nombre défini de transporteur
    -Possède une marge définie sur ses produits
    -Possède un nombre défini de produits et un stock défini de chacun d'entre eux
    Un produit
    -A un champ marque
    -A une quantité disponible par magasin
    -A un poid
    -A une date de péremption
    -A un code produit générique
    Un code produit
    -Définit un produit de manière générique (Ex : Haricot Vert)
    Un fournisseur
    -Fournit un ou plusieurs magasins
    -Possède une liste de produit finie
    -Peut recevoir une commande d'un magasin pour x Produit
    Une commande
    -Est faite dans un magasin
    -Est faite par un client
    -Concerne une liste définie de produit (1 ou plusieurs de chaque produit)
    -Possède une adresse de livraison
    -A une date définie
    -Chaque produit a un prix défini par (Nbre de produit * prix du produit * marge du magasin). Le calcul de ce prix devra être fait dans une fonction réutilisable.
    Un client
    -Possède un nom
    -Possède une adresse
    -Passe des commandes dans un magasin
    Un transporteur
    -Travaille dans un magasin
    -Possède un nombre défini de camion
    -S'occupe de la livraison de commandes

    j'ai modélisé ma BDD de la façon suivante:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    --
    -- Structure de la table `client`
    --
     
    CREATE TABLE IF NOT EXISTS `client` (
      `nom` text NOT NULL,
      `adresse` text NOT NULL,
      `commande_passee` int(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `code_produit`
    --
     
    CREATE TABLE IF NOT EXISTS `code_produit` (
      `generique` text NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `commande`
    --
     
    CREATE TABLE IF NOT EXISTS `commande` (
      `magasin_de_fabrication` int(100) NOT NULL,
      `client` text NOT NULL,
      `liste_definie_produit` int(100) NOT NULL,
      `adresse_de_livraison` int(100) NOT NULL,
      `date_definie` int(100) NOT NULL,
      `prix_defini` int(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `fournisseur`
    --
     
    CREATE TABLE IF NOT EXISTS `fournisseur` (
      `magasin_fourni` varchar(100) NOT NULL,
      `liste_produit_finie` int(100) NOT NULL,
      `commande_recue` int(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `magasin`
    --
     
    CREATE TABLE IF NOT EXISTS `magasin` (
      `nom` text NOT NULL,
      `adresse` varchar(100) NOT NULL,
      `geo-spatiale` varchar(100) NOT NULL,
      `nombre_transporteur` int(100) NOT NULL,
      `marge_produit` int(100) NOT NULL,
      `stock` int(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Structure de la table `produit`
    --
     
    CREATE TABLE IF NOT EXISTS `produit` (
      `marque` text NOT NULL,
      `quantite` int(100) NOT NULL,
      `poids` varchar(100) NOT NULL,
      `date_peremption` int(100) NOT NULL,
      `code_produit_generique` varchar(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `transporteur`
    --
     
    CREATE TABLE IF NOT EXISTS `transporteur` (
      `magasin` text NOT NULL,
      `nombre_camion` int(100) NOT NULL,
      `commande_livree` int(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    j'ai quand même l'impression d'avoir oublié certaines conditions...

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 34
    Points : 35
    Points
    35
    Par défaut
    Peux-tu préciser quel genre d'avis veux-tu ? sur le code ou sur la conception elle-même ?

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    Il y a un forum de conception dédié : http://www.developpez.net/forums/f62...sation/schema/

    Lorsque l'on est à la phase de conception il ne sert à rien de présenter le modèle physique, qui va découler naturellement du MCD (et ceci sans erreur).



    Votre modèle manque de détail.

    Si on reprend votre entité produit par exemple :
    -A un champ marque
    -A une quantité disponible par magasin
    -A un poid
    -A une date de péremption
    -A un code produit générique

    la Marque est un attribut qui peut être partagé par différent produit.
    De ce fait cet attribut devra être externalisé dans une nouvelle entité :
    Produit-0,1----Possède----0,n-Marque

    La quantité dispo :
    si vous voullez gérer les stocks il va falloir plusieurs informations :
    - La quatité dispo physique en magasin.
    - La quantité pré-débité (lorsqu'un utilisateur fait une commande il réserve une ou n unitée mais celle-ci sont encore disponible au niveau physique).
    - La quatité facturée ou en cours de facturation
    - j'en oubli surement.

    Bref toutes ces informations devront être présente dans une entité stock, en de-hors de votre entité produit.


    La date de péremption :
    - Cette donnée n'est pas fixe, elle va dépendre du lot que vous recevez. Du coup pareil ici, il va falloir mettre cette donnée dans une nouvelle entité.



    Quid des prix (de base / revient / ...) ? celui-ci va dépendre en plus du fournisseur je suppose.


    etc..

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    Dans votre BDD, vous ne définissez ni clés primaires ni clés étrangères. C'est plus qu'un problème, votre comptable va vous trucider^^

    Il faut modéliser vos données avant de les définir, et ce dans les règles de l'art.

Discussions similaires

  1. [Conception] Base de donnée + Livre d'or
    Par linkinmimil dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/07/2006, 15h54
  2. conception base de données
    Par LaFik dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 07/06/2006, 18h04
  3. [Conception] base de données pour sport
    Par peach dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/10/2005, 16h21
  4. conception base de données
    Par aaronw dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 04/05/2005, 13h39
  5. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 14h14

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