Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
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 05/01/2012, 14h44   #1
Invité régulier
 
Inscription : juin 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 20
Points : 5
Points : 5
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.
Netzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 16h18   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
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 ?

Citation:
[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.

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.

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.

Citation:
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 !

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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h10   #3
Invité régulier
 
Inscription : juin 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 20
Points : 5
Points : 5
Alors tout d'abord, merci de t'intéresser à mon problème.

Citation:
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:
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.

Citation:
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:
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.
Netzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 18h16   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
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.

Citation:
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 08h52   #5
Invité régulier
 
Inscription : juin 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 20
Points : 5
Points : 5
Citation:
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?
Netzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 13h05   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 14h32   #7
Invité régulier
 
Inscription : juin 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 20
Points : 5
Points : 5
Merci, tes explications m'aident à y voir plus clair. Pour pouvoir encore avancer, pourrais m'éclairer sur ce point. en référence à cela:
Citation:
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?!
Netzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 14h37   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 14h41   #9
Invité régulier
 
Inscription : juin 2010
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 20
Points : 5
Points : 5
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.
Netzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h06.


 
 
 
 
Partenaires

Hébergement Web