Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 17/06/2008, 01h30   #1 (permalink)
Invité régulier
 
Date d'inscription: septembre 2006
Messages: 12
Par défaut Une BDD pour mon restaurant

Bonjour tout le monde,

Voila ma sœur tiens un restaurant, et elle utilise actuellement une feuille excel gérer ses commandes clients. C'est un peu la galère car la feuille est mal conçue et moi perso je voudrais lui faire une BDD sous Access 2003 mais je manque de notions et de pratique. Voici donc mes besoins.

Lorsque le serveur va prendre la commande d'un clients il note tout sur son calepin, il vient ensuite sur l'ordinateur ou un formulaire Access est ouvert avec plusieurs onglets (un pour chaque table en salle, véranda et terrasse). Il clique donc sur l'onglet S1 pour la table 1 en salle. Dans la fenêtre qui apparait il y a plusieurs champs qui apparaissent :

- Un N° de commande unique
- La date du jour qui s'est mise automatiquement
- Le Nombre de couverts à cette Table (champs qui servira à calculer le nombre de couvert servi pour une journée)
- Plusieurs zone de liste déroulante dans laquelle il pourra sélectionner les plats choisi par les clients, à droite de chaque Zone de liste déroulante se trouvera un champs dans lequel aparraitra automatiquement le prix de l'article sélectionné, à droite du prix de vente il y aura un champs dans lequel le serveur devra saisir une quantité, et encore à droite il y aura un dernier champs dans lequel apparaitra le total (Prix de vente de l'article x Qté).
- Le serveur doit bien entendu pourvoir mettre à jour la fiche si le client souhaite reprendre une bouteille de Badoit en plus,
- Un dernier champ indiquera en temps réel le Total global de la commande client.

J'ai déjà pour ma part crée la Table article avec les champs suivants :

- id_article (Numérotation automatique / Clé Primaire)
- nom (Texte)
- type (Texte) [Entrée, Menu, Digestifs,...]
- pa (Texte) [Prix d'achat pour plus tard]
- pv (Texte) [Prix de vente]]
- pr (Texte) [Prix de revient pour plus tard]
- description (Mémo)
- info (Mémo)

Maintenant il me reste à créer une table pour stocker les informations de chaque commande mais la je sèche,

Qui pourrait m'aider SVP ?

Par avance je vous remercie
Silverscott est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/06/2008, 15h16   #2 (permalink)
Expert Confirmé Sénior
 
Date d'inscription: octobre 2005
Messages: 2 545
Par défaut

Suggestion 1 : il existe sur le marché des logiciels dédiés aux restaurants, les as-tu regarder cela pourrait prendre moins de temps à faire.

Sinon j'ajouterai les tables suivantes :

Table des Serveurs ou des personnes avec un rôle de serveur.

Là cela dépend un peu de ta philosophie. La patronne est-elle une serveuses si elle fait le service, est-il nécessaire de distinguer des catégories de personnel (plongeur, garçon de salle, serveur, maître d'hotel, sommelier, etc ...).

Table des Tables, qui référence les tables physques du restaurant. Là aussi voir comment on traite le cas où on mets 2 tables côte à côte pour accuiellir un groupe par exemple.

Une commande c'est la liaison entre une tables, un client, un produit, une quantité donc cela te prend un table pour cela aussi. Ton système est-il destné à la cuisine ? Si oui, une indication de cuisson, accompagnement, spécificité pour le plat (ex : sans fromage, bien cuit) serait peut-être utile.

Je suggère de numéroter les clients sur une table de 1 à n, cela me parait le plus facile à vivre.


Table Commande

ClefCommande (NumSeq)
ClefServeur
DateHeure

Table DetailCommandes ressemblerai à cela :

ClefDetailCommande (numSeq)
ClefCommande
ClefTable
NoSeqDeClient
ClefProduit
Qté

Renseigne toi aussi pour savoir s'il n'y a pas de contrainte fiscale (ex : pas possible de supprimer une commande, numéro de commande sans rupture, etc...)

A+
__________________
Merci de ne pas poster pour des pb techniques dans les messages privés.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/06/2008, 10h00   #3 (permalink)
Membre expérimenté
 
Date d'inscription: novembre 2006
Localisation: Walcourt BELGIQUE
Âge: 63
Messages: 562
Par défaut

Bonjour Silverscott,
Ton sujet m'intéresse (Ma fille tient aussi un resto!)
J'ai développé une application (Access 2000) dans laquelle
- on calcule les prix de revient des recettes
- on vérifie si le coefficient (Prix de vente/Prix des matière) est 'normal'
- on saisit la quantité de plats vendus par jour (a posteriori)
- on gère le stock permanent des principaux ingrédients
- on vérifie les prix des fournisseurs
- on gère la carte
- on gère la confection d'offres pour composition de menus spécifiques (Anniversaires, mariages ...)

J'ai aussi un autre application (non intégrée à la précédente) pour les vins.
(notre carte est présentée sous 3 formes : par appellation, par millésime pour les bordeaux et par prix.


Il n'y a pas actuellement de module pour établir le bon de cuisine, ni la note du client.
Nous avions à l'époque considérer que l'encodage en temps réel des commandes était un travail trop fastidieux, avec dans notre cas, peu de valeur ajoutée.

Cela demande une bonne dose de connaissance du VBA.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/06/2008, 15h51   #4 (permalink)
Invité régulier
 
Date d'inscription: septembre 2006
Messages: 12
Par défaut

Citation:
Envoyé par marot_r Voir le message
Suggestion 1 : il existe sur le marché des logiciels dédiés aux restaurants, les as-tu regarder cela pourrait prendre moins de temps à faire.
Oui c'est vrai mais c'est pas gratuit et je veux pouvoir lui faire un truc de mes mains à moi

Citation:
Envoyé par marot_r Voir le message
Sinon j'ajouterai les tables suivantes :

Table des Serveurs ou des personnes avec un rôle de serveur.

Là cela dépend un peu de ta philosophie. La patronne est-elle une serveuses si elle fait le service, est-il nécessaire de distinguer des catégories de personnel (plongeur, garçon de salle, serveur, maître d'hotel, sommelier, etc ...).
Pas besoin de gérer les serveurs pour la simple et bonne raison c'est qu'il n'y en a qu'un ! C'est un petit restaurant sans prétention...

Citation:
Envoyé par marot_r Voir le message
Table des Tables, qui référence les tables physques du restaurant. Là aussi voir comment on traite le cas où on mets 2 tables côte à côte pour accueillir un groupe par exemple.
La aussi les tables sont numérotée de S1 à S10 pour la salle, de V1 à V5 pour la véranda et de T1 à T10 pour la Terrasse. Les tables sont aménagées et déplacées à la demande mais la Numérotation ne change pas

Citation:
Envoyé par marot_r Voir le message
Une commande c'est la liaison entre une tables, un client, un produit, une quantité donc cela te prend un table pour cela aussi. Ton système est-il destné à la cuisine ? Si oui, une indication de cuisson, accompagnement, spécificité pour le plat (ex : sans fromage, bien cuit) serait peut-être utile.
Mon système n'est destiné qu'à la caisse pour connaître et gérer les commandes des clients par table et éditer les factures correspondantes.

Citation:
Envoyé par marot_r Voir le message
Je suggère de numéroter les clients sur une table de 1 à n, cela me parait le plus facile à vivre.


Table Commande

ClefCommande (NumSeq)
ClefServeur
DateHeure

Table DetailCommandes ressemblerai à cela :

ClefDetailCommande (numSeq)
ClefCommande
ClefTable
NoSeqDeClient
ClefProduit
Qté
Heuuu je comprends pas tout la... ClefDetailCommande, etc... ça veut dire quoi ??? Désolé

Citation:
Envoyé par marot_r Voir le message
Renseigne toi aussi pour savoir s'il n'y a pas de contrainte fiscale (ex : pas possible de supprimer une commande, numéro de commande sans rupture, etc...)
Pas de contrainte fiscale, on veut pouvoir faire ce qu'on veut (édition, modification, suppression) avec les commandes.
Silverscott est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/06/2008, 19h29   #5 (permalink)
Expert Confirmé Sénior
 
Date d'inscription: octobre 2005
Messages: 2 545
Par défaut

Table Commande

ClefCommande (NumSeq)
ClefServeur
DateHeure

Table DetailCommandes ressemblerai à cela :

ClefDetailCommande (numSeq)
ClefCommande
ClefTable
NoSeqDeClient
ClefProduit
Qté

C'est l'architecture classique pour se genre de problème :

Tu as une entête de commande qui regroupe les éléments fixes, ceux qui ne doivent être présent qu'une seule fois (ex : date, no de commande) et tu as des détails de commandes qui te donne la liste des produits commandés par le client.

Ex :

Table Commande :

Commande 1, date 2008-06-20

Table détail de commande :

ClefDetailCommande (numSeq)
ClefCommande = 1 (pour la liaison avec l'entête)
ClefTable = S1
NoSeqDeClient = 1
ClefProduit = TourteAuPomme
Qté = 1

ClefCommande = 1 (pour la liaison avec l'entête)
ClefTable = S1
NoSeqDeClient = 1
ClefProduit = PinardMaison
Qté = 1

ClefCommande = 1 (pour la liaison avec l'entête)
ClefTable = S1
NoSeqDeClient = 2
ClefProduit = SaladeDuChef
Qté = 1

Dans ton cas qui est très simple on pourrait répéter la date dans chaque enregistrement de détail et du coup ne plus avoir besoin de l'entête mais ce n'est pas une pratique recommandée. Et dès que tu vas avoir 2 serveurs, ou un extra pour les périodes de vacances par exemple, tu vas avoir des problèmes. Donc je te recommande fortement la version entete-detail.

A+
A+
__________________
Merci de ne pas poster pour des pb techniques dans les messages privés.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/06/2008, 18h28   #6 (permalink)
Invité régulier
 
Date d'inscription: septembre 2006
Messages: 12
Par défaut

ça à l'air tellement simple... mais je comprends rien

Je mets ma BDD ici : http://www.orangerie-de-connelles.fr/tempo

si vous pouvez y jeter un oeil
Silverscott est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/06/2008, 08h29   #7 (permalink)
Membre Expert
 
Date d'inscription: octobre 2007
Localisation: Dunières 43220
Âge: 48
Messages: 1 052
Par défaut

hello Bienvenue SilverScott
je viens de regarder ta base:
- attention à tes noms de table, tu vas avoir de gros problèmes si tu dois passer par (ne serais ce qu'un petitpeu) VB (la programmation)
- je te conseille soit Articles soit T_Articles
- ensuite il me semble que la table "tables" ne sert à rien, en effet S01 est une aussi bonne clef que 1 et en plus j'aime pas les numéros auto (je ne m'en sert qu'en dernier recours) A moins que dans cette table, tu ne stocke d'autres renseignements, ce qui alors la justifie pleinement.
- ensuite, à moins que les invités changent de table à chaque plat, le numéro de table a bien sa place dans l'en tête (@marot_r: tu as écrit "ClefTable = S1" à chaque détail)
- de plus, il me semble qu'il peut être interressant de noter le nom (et l'adresse?) des clients pour plusieurs raisons:
. . - analyser leurs préférences
. . - leur envoyer des voeux
. . - leur faire des factures personnalisée (indispensable pour repas d'affaire des entreprises)
- et dans ce cas, le numéro client se retrouve dans l'entête
- enfin, si tu met le type en clair dans la table des articles, il n'est pas nécessaire de numéroter la table type, à l'inverse, il vaudrait mieux ne stocker que le numéro de type dans la table articles

Pour faire les formulaires de remlissage de ces tables tout autant que pour les formulaires d'exploitation, il faut bien analyser la méthodr de travail actuelle, ses qualités, ses défauts et ensuite reproduire au plus près le fonctionnement désiré.
Pour moi, soit je choisi le plat et je l'affecte à une table soit j'ai la table sous les yeux et je cherche les plats dans la liste.
Sachant que le choix de la table peut être pseudographique, la première solution devient pas si con que ça, en effet, si je donne le même plat à plusieurs tables, avec une sélection de la table qui est plus rapide que la sélection du plat, je vais gagner du temps, mais bon, je m'aventure...! (je voulias juste attirer l'attention sur les solutions trop vite rejetées...?)

Courage, a bientôt
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 23/06/2008, 15h18   #8 (permalink)
Expert Confirmé Sénior
 
Date d'inscription: octobre 2005
Messages: 2 545
Par défaut

Simplfi, j'identifie un client par un numéro de table et numéro séquentiel dans la table donc c'est pour cela que je répéte le code table. Cela permet aussi simplement de gérer les commandes qui comportent plusieurs tables.

Silverscott, pour ce qui est de l'architecture, je ne sais comment te l'expliquer plus simplement. Dans une BD, on fait toujours très attention de ne pas dupliquer de l'information. Donc dès qu'on peut on regroupe dans une table les infos redondante et on s'y réfère.

Ceci justifie la structure 1 entête + n détails que je t'ai suggérée.

Je pense qu'il y a un tutorial sur ce site sur la création de BD. Je t'invite à le lire avant d'investir plus de temps dans ton appli.

A+
__________________
Merci de ne pas poster pour des pb techniques dans les messages privés.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide