Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
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 15/06/2007, 10h27   #1
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 10h42   #2
Membre Expert
 
Avatar de Demco
 
Inscription : mai 2002
Messages : 1 396
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2002
Messages : 1 396
Points : 1 411
Points : 1 411
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.
Demco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 11h36   #3
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 12h01   #4
Membre Expert
 
Avatar de Demco
 
Inscription : mai 2002
Messages : 1 396
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2002
Messages : 1 396
Points : 1 411
Points : 1 411
Citation:
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.
Demco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 12h59   #5
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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.
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 13h22   #6
Membre Expert
 
Avatar de Demco
 
Inscription : mai 2002
Messages : 1 396
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2002
Messages : 1 396
Points : 1 411
Points : 1 411
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.
Demco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 11h40   #7
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 11h54   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 12h33   #9
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 12h42   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 12h11   #11
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
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
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 14h49   #12
Invité régulier
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 36
Points : 9
Points : 9
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
Pierre Dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 15h43   #13
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
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 ?
random 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 12h03.


 
 
 
 
Partenaires

Hébergement Web