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

Modélisation Discussion :

Comment faire ma base de données


Sujet :

Modélisation

  1. #1
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut Comment faire ma base de données
    Bonjour tout le monde

    Ceci est mon premier message parmi vous (et je pense qu'il n'est pas simple).

    J'ai un problème avec une nouvelle base de données que je dois faire et je ne sais pas trop comment l'aborder. Je viens donc vers vous pour obtenir quelques conseils.

    Dans cette base toute simple (!!), il s'agit de faire des devis à partir de matériaux provenant d'une usine. Imaginons qu'il s'agisse de bois.

    Cette usine fabrique des planches de bois et il suffit de faire des devis en fonction du type de planche, de leur longueur, largeur et épaisseur.

    Seulement c'est un tout petit peu plus tordu que cela car on peut avoir plusieurs essences de bois (donc des tarifs différents).
    Mais s'il s'agit (par exemple) de planches de coffrage, le prix ne sera pas tout bêtement une formule en fonction de la largeur, longueur et épaisseur. Le prix sera de 1 pour une épaisseur standard de 10 si la largeur est entre 20 et 30 et que la longueur est entre 1000 et 1500.
    Le prix sera de 1,1 pour une épaisseur standard de 10 si la largeur est entre 30 et 40 et que la longueur est entre 1000 et 1500.
    Le prix sera de 1,15 pour une épaisseur standard de 10 si la largeur est entre 40 et 50 et que la longueur est entre 1200 et 1700.
    Le prix sera de 1,23 pour une épaisseur standard de 10 si la largeur est entre 50 et 75 et que la longueur est entre 1450 et 2174.
    ...
    Et j'ai comme cela des dizaines de pages de tarifs en fonction de longueurs, largeurs, épaisseurs, types de planches.
    A cela se rajoute les longueurs libres. C'est à dire que l'acheteur de planches n'est pas déterminé sur une longueur fixe, mais qu'il accepte des planches d'une longueur (par exemple) entre 1400 et 2200 en fonction des besoins de l'usine. Le prix est donc différent.

    Bien entendu on ne fabrique pas que des planches de coffrages, mais des plinthes, des voliges, ...
    Bien entendu il peut y avoir des finitions différentes (scié, raboté, poncé, vernis, peint, lazuré, ...)
    Bien entendu il peut y avoir des pièces spéciales (plié, coupé en rond, avec des trous, des biais, ...)

    Ma question : comment est-ce que je construis ma base pour que l'on puisse assez simplement changer un tarif, modifier des intervalles de longueurs, ...?
    Je met tout dans des variables, des tables ?

    Question connexe : comment est-ce que je met les tests dans mon formulaire ? Tout en code, dans des tables ?

    Merci d'avance pour votre aide

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Bonjour et bienvenue,

    Nous n'allons pas te proposer un modèle tout fait, propose nous un modèle qui te semble correcte et nous te dirons ce que nous en pensons.
    J'aime les gâteaux.

  3. #3
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut
    Je pense qu'il y a un malentendu, car je ne cherche pas du tout à ce que vous me fassiez le modèle, mais juste me dire comment vous aborderiez le problème.

    Est-ce qu'il vaut mieux mettre dans des variables ou dans des tables ? Quels avantages et inconvénients pour les différentes méthodes ?

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Ma question : comment est-ce que je construis ma base pour que l'on puisse assez simplement changer un tarif, modifier des intervalles de longueurs, ...?
    Je met tout dans des variables, des tables ?
    Si ce sont des variables il faut retoucher le code source pour modifier les valeurs. De plus aucun historique des tarifs ne sera gardé.

    Je pense qu'il faut utiliser des tables oui. Tu peux ainsi créer des formulaires afin de les mettre à jour à volonté.
    J'aime les gâteaux.

  5. #5
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut
    L'inconvénient des tables c'est pour donner une valeur texte (ex : "Longueur libre") dans un champ numerique (ex : Longueur). Encore pire pour dire longueur libre entre 100 et 150.

    Je ne vois vraiment pas comment faire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Il faudrait vraiment bien comprendre ce que tu veux faire pour bien te conseiller, je ne peux pas affirmer que je te donne de solution parfaite.
    Mais tu peux utiliser des tables de paramètres. Pour la longueur tu peux très bien imaginer un champ "longueur_fixe", qui sera vide si la longueur n'est pas fixe par exemple, ou aura la valeur -1. Puis deux autres champs longueur_min et longueur_max.

    Ce n'est qu'un exemple, à toi de voir si c'est exploitable pour ton cas.

    En espérant t'aider.
    J'aime les gâteaux.

  7. #7
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut
    Bonjour

    Je vois bien que tu as du mal à comprendre (mais tu fais quand même l'effort d'essayer).

    Mais pour l'instant cela ne m'aide pas vraiment

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Si tu veux y arriver, il faut une table avec tous les tarifs possibles.

    Si tu mets tout dans des variables, bonjour la galère le jour où les tarifs changent.

    Malheureusement, il faudra un enregistrement par produit vendu.
    On peut toujours moduler certains tarifs, par exemple en fonction de l'essence de bois, mais pas de souplesse.

    Une fois cette table réalisée, il faut un formulaire qui permette de retrouver très rapidement le produit. Avec des listes déroulantes pour affiner les recherches.

    Chaque produit doit avoir une référence, pour n'avoir que cette référence dans la table de détail des commandes.

    tbl_Produits
    reference
    epaisseur
    longuer
    largeur
    essence
    prix
    ......

    tbl_Client
    numero_Client
    Nom
    Prenom


    tbl_Facture

    Numero_Facture
    Numero_Client (clé externe)
    Date_Facture

    tbl_DetFacture
    Id_DetFact
    Numero_Facture
    reference
    qantite
    pu
    ...
    ...

    Le prix du produit doit être enregistré dans la table détail commande pour garder un historique des prix.
    Si ce prix n'était pas dans cette table, un changement de prix entraînerait automatique les changement pour toutes les factures ou commande, se trouvant dans la DB.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut
    Bonjour

    Merci pour ta réponse. Mais je pense qu'elle convient pour des produits standardisés, pas pour du sur-mesure.

    Ici, le produit final n'existe pas avant, c'est le client final qui donne ses dimensions et l'usine qui le fabrique. Le souci est de déterminer le prix pour son produit.

    En effet pour trouver le prix, on fonctionne avec des échelles (cf premier message) :
    Si la longueur est entre tant et tant, si la largeur est entre tant et tant, si la surface fait entre tant et tant, si l'épaisseur fait tant ou tant.

    Par exemple pour mon premier type de calcul voici mes données :

    Groupe A :
    20x20 Ou
    Longueur Libre (LL) et 10<=largeur (l)<=35
    épaisseur 4 ->Prix P1
    épaisseur 6 ->prix P2
    épaisseur 8 ->prix P3
    épaisseur 10 ->prix P4
    épaisseur 12 ->prix P5
    épaisseur plus importante (et <20) ->P5-(épaisseur-12)*(P5-P4)/2
    Pour toute épaisseur "impaire" entre 4 et 12 faire la moyenne entre les 2 prix des épaisseur qui l'entoure

    Groupe B :
    0,04m²<Surface (S)<=0,09 ET LL et 35<l<=45
    épaisseur 4 ->Prix P1*coef1
    épaisseur 6 ->prix P2*coef1
    épaisseur 8 ->prix P3*coef1
    épaisseur 10 ->prix P4*coef1
    ...

    Groupe C :
    0,09<S<=0,2 ET LL et 45<l<=50
    épaisseur 4 ->Prix P1*coef2
    épaisseur 6 ->prix P2*coef2
    épaisseur 8 ->prix P3*coef2
    ...

    Groupe D :
    0,2<S<=0,36 ET 50<l<=60
    épaisseur 4 ->Prix P1*coef3
    épaisseur 6 ->prix P2*coef3
    épaisseur 8 ->prix P3*coef3
    ...

    Groupe E :
    0,36<S<=1 ET l<60 ou L<60 OU LL et l>60
    épaisseur 4 ->Prix P1*coef4
    épaisseur 6 ->prix P2*coef4
    épaisseur 8 ->prix P3*coef4
    ...

    Groupe F :
    0,36<S<=1 ET l>60 ET L>60
    épaisseur 4 ->Prix P1*coef5
    épaisseur 6 ->prix P2*coef5
    épaisseur 8 ->prix P3*coef5
    ...

    Groupe G :
    1<S<=1,5
    épaisseur 4 ->Prix P1*coef6
    épaisseur 6 ->prix P2*coef6
    épaisseur 8 ->prix P3*coef6
    ...

    Groupe H :
    1,5<S<=3
    épaisseur 4 ->Prix P1*coef7
    épaisseur 6 ->prix P2*coef7
    épaisseur 8 ->prix P3*coef7
    ...

    Je mettrai un formulaire dans lequel on pourra inscrire la longueur, la largeur et l'épaisseur. But : trouver le prix

    Bon appétit

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Dans la table produit, tu as besoin d'un enregistrement par possibilité.

    A 20X20 longueur libre min 10 max 35 ep 4 prix P1
    A 20X20 longueur libre min 10 max 35 ep 6 prix P2
    A 20X20 longueur libre min 10 max 35 ep 8 prix P3
    ........

    Lorque tu sera dans ton formulaire, des listes de choix

    une pour le A; une pour le 20X20, une pour la longueur, ........
    il n'y a pas de limite, le reultat dans une liste de choix
    Une fois le bon enregistrement choisi, les données sont copiées dans la table détail facture avec la quantité.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Moi je verrais bien :

    Une table critère(NomCirtere,BorneMini, BorneMaxi, Coef)

    Epaisseur, 10,15,1
    Epaisseur, 16,20,2
    Largeur,10,20,1
    Largeur,21,30,2
    Longueur,10,20,1
    Longueur,21,50,3

    Ainsi pour un produit de

    Epaisseur 13, Longueur 35, Largeur 15

    J'aurais Cout=PrixMatierePremiere*1*3*1

  12. #12
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 416
    Points : 2 879
    Points
    2 879
    Par défaut
    Merci Tofalu

    Mais, malheureusement, je crois que cela ne convient pas parfaitement.

    En effet, en reprécisant la question, pour le groupe B de tarif, un article en fait partie :
    soit en connaissant la longueur et la largeur, donc on peut déduire la surface. Celle-ci étant comprise entre 0.04 et 0.09
    soit en laissant les longueurs libres (pour l'usine de tailler à la longueur qu'elle veut), mais en imposant la largeur. Celle-ci étant comprise entre 35 et 45.

    Et encore je ne rentre pas dans la compléxité des groupes de prix E et F car ceux-ci :
    Soit on connait la longueur et la largeur, donc on peut en déduire la surface, celle-ci étant comprise entre 0.36 et 1. Mais, pour le groupe E, une seule des 2 dimensions est supérieure à 60. Alors que pour le groupe F, les deux dimensions doivent être supérieures à 60.
    soit en laissant les longueurs libres (pour l'usine de tailler à la longueur qu'elle veut), mais en imposant la largeur. Celle-ci étant supérieure à 60. ceci pour le groupe E uniquement.

    Et encore, il ne s'agit ici que du tableau de prix pour le premier type d'article. Les autres articles obéissent à d'autres régles. Certains en fonction du poids, d'autres il s'agit d'un simple calcul entre longueur, largeur et épaisseur. D'autres encore en fonction de longueur et de largeur et du type de découpe.

    Bref à chaque article il y a une méthode de calculs de prix différent. C'est en cela que j'ai des soucis. Comment faire pour gérer cette grande diversité ?

    J'ai conscience de n'être pas toujours très clair

    Bonne journée

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    examinons la table des tarifs elle comporte 2 types d'information
    A des éléments de structure

    groupe ok a conserver (enfin je sais pas à quoi il sert)
    epaisseur à dupliquer en 4,5,6,7,8 par exemple
    nous avons ensuite 3 variables longueur, largeur, surface
    il convient de remplacer par
    longueur mini ,longueur maxi (logmini,logmaxi)
    largeur mini, largeur maxi (lamin,lamax)
    surface mini, surface max (smaxi)
    longueur libre sera noté logmini=0 logmaxi=100000
    j'ajoute datedebut datefin
    à cette étape je peux classer n'importe quel bout de bois
    en utilisant un des n enregistrements de la table (j'ajoute une clef:tarif)
    bon maintenant

    B les tarifs
    tarif de base P1 que je peux coder 1
    P2 sera noté p2/p1
    un p2 coefficient 3 sera noté p2/p1*coeff 3
    je vais créer une table tarifaire avec ces coefficients
    +date début et datefin et clef:tarif +clef unique datedébut/tarif
    en principe cette table devrait rester très stable


    j'ajoute une troisiéme table prix de base
    datedebut datefin valeur de p1

    il convient sans doute d'ajouter une table essence



    normalement je peux gérer tout prix, rechercher tout historique ....,imprimer tout catalogue

    j'ai trois événements tarifaire possibles

    une révision générale il me suffit de faire varier p1 maj datefin nouvel enregistrements

    une révision structurelle prix je vais changer p2/p1 ou coeff 1

    une revision de la momenclature des articles modif en conséquence

    si mon intuition est bonne une révision mensuelle sur p1 mettra à jour tous les tarifs
    Elle est pas belle la vie ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/06/2011, 12h07
  2. Réponses: 2
    Dernier message: 11/04/2009, 17h29
  3. comment faire une "base de donnée" en visual basic
    Par morpheusmg dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/11/2007, 19h42
  4. Réponses: 3
    Dernier message: 22/06/2006, 17h41
  5. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07

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