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

Schéma Discussion :

Problème pour définir le schéma pour une Gestion de Stock


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut Problème pour définir le schéma pour une Gestion de Stock
    Bonjour,

    Je sais que le thème est abordé un peu partout et par tout le monde mais je suis face à un problème et j'espère trouver la réponse auprès de vous.

    Je souhaite concevoir une Bdd pour la gestion de stock classique (enfin je pense) avec des entrées/sorties de stock, gestion de commande, ...

    Je pense déjà aux les entités suivantes:

    - Opérateur
    - Client
    - Produit
    - Commande ?!

    Avec les relations suivantes:

    [Operateur] 0,n [Ajouter] 1,1 [Produit]
    [Client] 1,n [Commander] 0,n? [Produit] (cf la notion de n° de série en bas)
    [Operateur] 0,n [Préparer] 1,1 [Commande] (correspond a une sortie de stock)


    Sachant que l'Opérateur est celui qui ajoute les produits en stock et les retire également pour préparer la commande faite par le client.

    Donc faut il pour commencer que je prévois une entité pour cette notion de mouvement ou d'etat du stock?!

    Par ailleurs, j'ai un autre problème concernant mes produits, j'ai un numéro de série unique pour certains et commun pour d'autres.
    Faut il que je créé une entité pour les numéros de série?

    J'ai fait très peu de Bdd dans mes études (d'où mes difficultés) mais je sais qu'il faut bien déterminer son schéma pour ne pas avoir de surprise. C'est pourquoi je sollicite de l'aide, des avis.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    [Operateur] 0,n [Ajouter] 1,1 [Produit]
    Ceci veut dire :
    Un opérateur peut ajouter plusieurs produits et un produit est ajouté par un seul opérateur.

    => Jean Dupont ajoute le produit Truc puis part en congés. D'autres Trucs arrivent ; on attend que Jean Dupont rentre de congés pour les ajouter au stock ?

    [Client] 1,n [Commander] 0,n [Produit]
    Ceci veut dire :
    Un client commande de un à plusieurs produits et un produit peut être commandé par plusieurs clients.

    [Operateur] 0,n [Préparer] 1,1 [Commande] (correspond a une sortie de stock)
    Ceci veut dire :
    Un opérateur peut préparer plusieurs commandes et une commande est préparée par un seul opérateur.

    Comme une commande peut concerner plusieurs produits, et comme tous les produits de la commande ne sont pas forcément disponibles en stock, comment vas-tu gérer le reste à livrer ?
    Et si Jean Dupont est en congés quand le solde de la commande arrive, on attends qu'il rentre de congés pour terminer la livraison de la commande ?

    Si tu ne dois modéliser que la partie gestion de stock, à la limite, tu n'as pas besoin du client ! Il arrive au magasin un bon de commande comprenant une à plusieurs lignes concernant chacune un produit. Et ce sont ces lignes de commande qui doivent être gérées.

    Comme tu le suggère au début de ton message, tu trouveras plein d'exemples traitant de ce sujet. J'espère avoir ramené ta réflexion sur le bon chemin.

    Sachant que l'Opérateur est celui qui ajoute les produits en stock et les retire également pour préparer la commande faite par le client.
    Les congés de Jean Dupont risquent d'être vraiment pénalisants pour la productivité du magasin !

    Par ailleurs, j'ai un autre problème concernant mes produits, j'ai un numéro de série unique pour certains et commun pour d'autres.
    Faut il que je créé une entité pour les numéros de série?
    Que veux-tu dire par là ?
    Ne confonds-tu pas "numéro de série" et "référence" ?

    Le produit "Truc" peut avoir pour référence "A824" et être fabriqué par séries de 100 unités. Chaque exemplaire d'une série aura le même numéro de série (+ éventuellement un numéro d'ordre, ça dépend du produit).
    Si le produit est fabriqué par unité individuelle, Chaque exemplaire pourra avoir un numéro de série différent.
    Mais tous les "Trucs" auront la même référence, quel que soit le numéro de série.
    A toi de voir si tu dois gérer chaque exemplaire d'un produit et noter que Jean Dupont a préparé une commande de 100 Trucs référencés A824 et portant les numéros de série de 2012-01-0001 à 2012-01-0100, ce qui constitue une information à noter sur le bon de livraison après la préparation de la commande, ou si tu ne dois gérer que la référence du produit qui est une simple propriété de l'entité produit.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Alors tout d'abord, merci de t'intéresser à mon problème.

    Citation:
    [Operateur] 0,n [Ajouter] 1,1 [Produit]
    Ceci veut dire :
    Un opérateur peut ajouter plusieurs produits et un produit est ajouté par un seul opérateur.

    => Jean Dupont ajoute le produit Truc puis part en congés. D'autres Trucs arrivent ; on attend que Jean Dupont rentre de congés pour les ajouter au stock ?
    Pour moi, cela veut dire qu'un produit ne peut être ajouté que par un seul Opérateur
    ou que 2 opérateurs ne peuvent pas ajouter un même produit
    ou qu'une fois qu'un opérateur a ajouté un produit, ce produit étant ajouté, il ne peut l'être par quelqu'un d'autre.

    Donc si Jean est en congès, Paul peut ajouter des produits. Je me suis trompé dans les cardinalités ?

    Citation:
    [Operateur] 0,n [Préparer] 1,1 [Commande] (correspond a une sortie de stock)
    Ceci veut dire :
    Un opérateur peut préparer plusieurs commandes et une commande est préparée par un seul opérateur.
    Même principe ici.

    Comme une commande peut concerner plusieurs produits, et comme tous les produits de la commande ne sont pas forcément disponibles en stock, comment vas-tu gérer le reste à livrer ?
    Pour ce qui est de la gestion des commandes, les commandes sont préparées si et seulement si tous les produits sont disponibles.

    Pour ce qui est de la notion de Client, c'est pour savoir une trace où les produits ont été envoyé.

    Citation:
    Par ailleurs, j'ai un autre problème concernant mes produits, j'ai un numéro de série unique pour certains et commun pour d'autres.
    Faut il que je créé une entité pour les numéros de série?
    Que veux-tu dire par là ?
    Ne confonds-tu pas "numéro de série" et "référence" ?

    Le produit "Truc" peut avoir pour référence "A824" et être fabriqué par séries de 100 unités. Chaque exemplaire d'une série aura le même numéro de série (+ éventuellement un numéro d'ordre, ça dépend du produit).
    Si le produit est fabriqué par unité individuelle, Chaque exemplaire pourra avoir un numéro de série différent.
    Mais tous les "Trucs" auront la même référence, quel que soit le numéro de série.
    A toi de voir si tu dois gérer chaque exemplaire d'un produit et noter que Jean Dupont a préparé une commande de 100 Trucs référencés A824 et portant les numéros de série de 2012-01-0001 à 2012-01-0100, ce qui constitue une information à noter sur le bon de livraison après la préparation de la commande, ou si tu ne dois gérer que la référence du produit qui est une simple propriété de l'entité produit.
    Non je ne confond pas référence et numéro de série. Donc pour mieux me faire comprendre, je vais prendre un exemple concret (qui concerne mon projet):

    Chaque produit a un code barre (pas important), ce code barre si divise en 2. Le début qui correspond à la référence produit et la fin à ce que j'appelle le numéro de série.
    ex: code d'un stylo = STYL520 (référence = STYL et n° série = 520)
    code d'un autre stylo = STYL521

    Donc je peux avoir 20 stylo 520 et uniquement 1 stylo 521 alors qu'il s'agit de la même référence.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Netzo Voir le message
    Pour moi, cela veut dire qu'un produit ne peut être ajouté que par un seul Opérateur
    ou que 2 opérateurs ne peuvent pas ajouter un même produit
    ou qu'une fois qu'un opérateur a ajouté un produit, ce produit étant ajouté, il ne peut l'être par quelqu'un d'autre.

    Donc si Jean est en congès, Paul peut ajouter des produits. Je me suis trompé dans les cardinalités ?
    Ça dépend ce que tu appelles "produit".

    Pour moi, qui ai travaillé dans une entreprise d'électricité, un produit est un disjoncteur ou un luminaire ou un touret de câble...
    Chaque produit peut être en plusieurs exemplaire dans le magasin mais il ne figurera qu'une fois dans la table des produits avec la quantité disponible.
    Si c'est Jean qui a ajouté pour la première fois le Disjoncteur C60N de 32 ampères, rien n'empêche Paul d'enregistrer l'arrivée de 10 disjoncteurs identiques, ce qui changera la quantité disponible. Mais en fait ce qui est enregistré, c'est une entrée en stock, pas un produit dans la table des produits.
    Il y a ambiguïté dans ta formulation mais je crois que nous disons en fazit la même chose.

    Chaque produit a un code barre (pas important), ce code barre si divise en 2. Le début qui correspond à la référence produit et la fin à ce que j'appelle le numéro de série.
    ex: code d'un stylo = STYL520 (référence = STYL et n° série = 520)
    code d'un autre stylo = STYL521

    Donc je peux avoir 20 stylo 520 et uniquement 1 stylo 521 alors qu'il s'agit de la même référence.
    Si tes deux stylos sont rigoureusement identiques oui mais pour moi un Bic bleu et un Bic noir n'ont pas la même référence.



    Même principe ici.



    Pour ce qui est de la gestion des commandes, les commandes sont préparées si et seulement si tous les produits sont disponibles.

    Pour ce qui est de la notion de Client, c'est pour savoir une trace où les produits ont été envoyé.



    Non je ne confond pas référence et numéro de série. Donc pour mieux me faire comprendre, je vais prendre un exemple concret (qui concerne mon projet):

    Chaque produit a un code barre (pas important), ce code barre si divise en 2. Le début qui correspond à la référence produit et la fin à ce que j'appelle le numéro de série.
    ex: code d'un stylo = STYL520 (référence = STYL et n° série = 520)
    code d'un autre stylo = STYL521

    Donc je peux avoir 20 stylo 520 et uniquement 1 stylo 521 alors qu'il s'agit de la même référence.[/QUOTE]
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Pour moi, qui ai travaillé dans une entreprise d'électricité, un produit est un disjoncteur ou un luminaire ou un touret de câble...
    Chaque produit peut être en plusieurs exemplaire dans le magasin mais il ne figurera qu'une fois dans la table des produits avec la quantité disponible.
    Si c'est Jean qui a ajouté pour la première fois le Disjoncteur C60N de 32 ampères, rien n'empêche Paul d'enregistrer l'arrivée de 10 disjoncteurs identiques, ce qui changera la quantité disponible. Mais en fait ce qui est enregistré, c'est une entrée en stock, pas un produit dans la table des produits.
    Il y a ambiguïté dans ta formulation mais je crois que nous disons en fazit la même chose.
    Voila tout est dit, c'est cette notion d'entrée (et parallèlement sortie) en stock que j'ai du mal a dissocier des produits.

    On est tout a fait d'accord que la table produit ne contiendra que les différents produit avec leur référence, désignation et quantité.

    Mais pour gérer la notion d'entrée/sortie en stock, cela veut dire qu'il faut/faudrait donc que je créé une (ou deux) table?

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Une entrée ou une sortie de stock, c'est un mouvement de stock.

    mouvement_stock -1,1----concerner----0,n- produit

    produit (prd_id, prd_reference, prd_nom...)
    mouvement_stock (mst_id, mst_id_produit, mst_date, mst_quantite...)

    Soit la quantité est négative pour une sortie et positive pour une entrée, soit tu ajoutes une colonne mst_sens de type CHAR(1) qui prend pour valeur 'E' pour entrée et 'S' pour sortie en laissant les quantités toujours positives.

    Si la source du processus est la commande du client, tu vas avoir ce modèle :
    client -0,n----passer----1,1- commande -1,n----contenir----(1,1)- ligne_commande -1,1----concerner----0,n- produit

    Les tables qui en découlent :
    client (clt_id, clt_nom...)
    commande (cmd_id, cmd_id_client, cmd_date...)
    produit (prd_id, prd_reference, prd_nom...)
    ligne_commande (lcd_id_commande, lcd_numero_ligne, lcd_id_produit, lcd_quantite...)

    fsmrel te conseillerait même d'adopter l'identification relative depuis le client pour propager son identifiant dans toutes les tables mais je vais au plus simple.

    Si toutes les sorties de stock se font par rapport à des commandes (en fait des lignes de commande), comme ce n'est pas le cas des entrées de stock, tu as en plus le schéma suivant :
    mouvement_stock -0,1----sortir_pour----0,n- ligne_commande

    Ce qui te donne une table de plus :
    sortie_stock (sst_id_mouvement, sst_id_commande, sst_numero_ligne...)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Merci, tes explications m'aident à y voir plus clair. Pour pouvoir encore avancer, pourrais m'éclairer sur ce point. en référence à cela:
    Une entrée ou une sortie de stock, c'est un mouvement de stock.

    mouvement_stock -1,1----concerner----0,n- produit

    produit (prd_id, prd_reference, prd_nom...)
    mouvement_stock (mst_id, mst_id_produit, mst_date, mst_quantite...)
    Bon déjà, c'est tout à fait ce que je dois mettre en place, je dois juste rajouter mon opérateur
    operateur -0,n----faire----1,1- mouvement_stock

    (donc l'id_operateur a ajouter dans la table mouvement)

    Maintenant, si je me mets en situation, Jean (s'il est pas en congès) entre un produit A et un produit B l'un après l'autre. S'agit il de deux mouvement distinct (avec 2 mst_id) ou d'un même mouvement et donc le mst_id peut être multiple?!

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Netzo Voir le message
    Maintenant, si je me mets en situation, Jean (s'il est pas en congès) entre un produit A et un produit B l'un après l'autre. S'agit il de deux mouvement distinct (avec 2 mst_id) ou d'un même mouvement et donc le mst_id peut être multiple?!
    Deux produits = deux mouvements de stock puisqu'un mouvement est associé à un seul produit.

    Et j'entends toujours par produit le "Stylo Bic Cristal à encre Bleue", quel que soit son numéro de série. il pourra en être entré en un seul mouvement 500 d'un coup par un seul opérateur.

    D'ailleurs, je n'ai jamais vu de numéro de série sur un Bic Cristal !

    Si au même moment Jean réceptionne des Bic Cristal Noir qui n'ont pas la même référence, alors il crée une seconde entrée en stock pour ce produit différent du premier.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    D'accord, c'est bien ce que je pensais. Je vais m'orienter vers cela.
    Je devrais te laisser tranquille jusqu'à lundi, histoire de faire le point.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2008, 11h55
  2. Outils pour modéliser le Schéma d'une BDD ?
    Par Tchupacabra dans le forum Outils
    Réponses: 7
    Dernier message: 20/05/2008, 17h43
  3. Réponses: 1
    Dernier message: 25/07/2007, 10h21
  4. Quel langage pour une gestion des stocks-client-caisse ?
    Par plex dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/04/2007, 19h56

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