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 :

Structure BD Recettes et Sous-recettes


Sujet :

Modélisation

  1. #1
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut Structure BD Recettes et Sous-recettes
    Bonjour,

    Je dois créer une BD de recettes qui peuvent contenir des sous-recettes en partie ou totalité.
    J'ai déjà fait un programme de recettes il y a longtemps et ça fonctionnait très bien avec des ingrédients simples.
    Ma question est: Comment structurer la BD pour gérer des sous-recettes

    Pour faire simple, je pars avec 3 tables: Recettes (ou produits finis), Ingrédients et Table de liaison Recettes-Ingrédients
    (Je ne parlerai pas des coûts de main d'oeuvre, prix de revient, rendements et autres...)

    Recettes
    • IDRecette
    • Nom
    • Prix de vente
    • Catégorie
    • Photo (éventuellement)


    Ingrédients
    • IDIngredient
    • Nom
    • Prix / kg


    Liaison
    • IDRecette
    • IDIngredient
    • Quantité


    De plus, les sous-recettes pourraient contenir d'autres sous-recettes...
    MPi²

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Les structures récursives sont difficiles à implanter dans Access.

    La théorie est assez simple c'est l'exploitation qui pose un problème.

    Pour simplifier un peu il faudrait considérer les ingrédients de base comme des recettes.

    Cela te donnes :

    tbLRecette
    ClefRecette
    ClefRecetteParent
    Nom
    Prix
    Quantite

    et tu as une relation de tblRecette à elle même sur ClefRecette <-> ClefRecetteParent.

    Tu vas dans la fenêtre des relation et tu ajoutes 2 fois tblRecette (c'est une astuce d'affichage, tu n'as toujours que 1 seule table recette).

    Pour la saisie, le plus simple est d'avoir un formulaire "Recette" qui présente ses composantes en sous-formulaire.
    Quand tu cliques sur un composant, cela ouvre une nouvelle instance de ce formulaire qui présente le composant et ses sous-composant.
    Un autre solution est d'utiliser un contrôle treeview pour présenter la décomposition.

    Et pour les requêtes au delà des composants immédiats (ex : sortir tous les ingrédients d'une recette qui est composé de recette), tu ne peux pas utiliser SQL il faut faire un parcours d'arbre récursif en VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Merci pour ta réponse.

    En fait, je ne sais pas encore si ça va aller ou non dans Access.
    Les gens au bureau n'ont pas accès à Access, ce qui ne m'empêche pas de créer une BD et de l'utiliser à partir d'Excel.
    Et je pourrais décider de tout faire dans Excel...

    Donc, pour l'instant, je bloque surtout au niveau de la structure des tables (ou des onglets)
    Je vais voir selon ton raisonnement ce à quoi je peux aboutir.

    Merci encore
    MPi²

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu peux aussi utiliser un "runtime" de Access qui est une version limitée de Access.
    Cela te permet de faire fonctionner (pas modifier ou développer) une base sans avoir à avoir un vrai Access.
    Dépendamment des versions de Access, c'est gratuit ou payant.
    La version 2016 est gratuite.
    C'est un peu plus contraignant pour le développeur qu'un vrai Access car il faut ABSOLUMENT mettre en place une bonne gestion des erreurs et il faut parfois substituer certaines fonctions standard d'Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    J'ai finalement un peu de temps à mettre sur ce projet...

    J'ai de la difficulté à saisir le fonctionnement de ton exemple...

    De la façon dont je comprends, une recette n'a qu'un code, un nom, une catégorie... mais plusieurs ingrédients.
    Ces ingrédients sont donc dans une table à part et une autre table sert de liaison entre la recette et les ingrédients et comporte les quantités.
    Comme il y a une ou des sous-recettes, je voyais ça de la même manière: une table de sous-recettes liée à la recette par une autre table de liaison et liée à la table d'ingrédients.

    Est-ce que ça fait du sens ?

    Nom : Tables Recettes.jpg
Affichages : 429
Taille : 36,1 Ko


    Ou bien j'intègre un champs sous-recette à même la table de liaison des ingrédients (?)
    Ce qui donnerait une table comme ça

    Nom : Résultat.jpg
Affichages : 322
Taille : 32,4 Ko
    MPi²

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si tu as juste une seul niveau en effet ta solution est plus "évidente".

    Je pensais que tu as avais des recettes composées de sous-recettes, elles-mêmes composées de sous-recettes, elles-mêmes composées de sous-sous-recettes et ainsi de suite jusqu'aux ingrédients de base.
    Ex :
    • un éclair est composé de patte et de crème.
    • La crème est composée d'ingrédients.
    • La pate est composée d'ingrédients.

    Donc ta recette d'éclair est composée de 2 sous-recettes qui ont elles-mêmes des ingrédients.
    Éventuellement la recette de crème pourrait être utilisée dans une autre recette (ex : tarte) et la recette de pate pourrait elle aussi être utilisée pour faire des choux par exemple.

    Ta présentation ressemble plus à des étapes dans une recette qu'à une sous-recette.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Le problème est que je ne connais pas encore toutes les recettes...
    Je sais qu'il y a des produits faits de 6 sous-recettes.

    J'imagine, mais sans être certain, que certaines sous-recettes pourraient être faites d'autres sous-recettes.
    Ça reste à valider avec les personnes en charge de les comptabiliser et les infos m'arrivent au compte-gouttes.
    L'idée du treeview était intéressante, mais on est rendus sous 64 bits et ce n'est plus disponible...

    Par contre, si certaines sous-recettes pouvaient contenir d'autres sous-recettes, la récursivité pourrait être possible, je pense, non ?
    MPi²

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Avec ma structure oui, pas avec la tienne puisqu'il n'y a pas cette notion dans tes tables.
    Et comme je l'ai mentionné au départ, une BD Access et la récursivité ne vont pas très bien ensemble.
    En gros tu me peux pas utiliser les mécanismes standards. Il te faut presque tout faire par VBA (ou macro peut-être).

    Et Excel n'est pas mieux.

    L'idéal serait une BD Objet mais je n'en ai plus entendu parlé depuis mes études et cela remonte à un bail.

    Il me semble que Oracle offre des possibilités de requêtes récursives.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    J'en suis rendu à penser à mettre 5 niveaux de sous-recettes du genre

    LiaisonRecetteIngrédient
    • IDRecette
    • Niv1
    • Niv2
    • Niv3
    • Niv4
    • Niv5
    • IDIngredient
    • Quantité


    Chaque sous-recette aurait un code commençant par 4 avec 5 digits, disons
    Donc chaque recette trouve soit un ingrédient soit une recette (niv1) avec ses ingrédients
    Si cette sous-recette contient une autre sous-recette (4xxxx), elle passe au niveau2,... etc...

    Je pense que c'est viable et je fais tout dans VBA sous Excel pour l'instant.
    Si ça fonctionne bien sous Excel, je pourrais penser à utiliser Access pour stocker les tables, tout ça géré par Excel, mais bon... ça restera à voir.
    MPi²

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Partage d'informations
    En consultant votre post je me suis rendus compte que nous avions presque la même BD. Je suis rendus aussi à 5 étapes à l'intérieure d'une recette. Pour ce faire je me suis créé des tables pour chaque étapes (sous-recette). Voici comment je les ai composées. (Je suis partis d'une BD que j'ai pris sur internet et je l'ai adaptée)

    Nom des tables:
    - Ingredient
    - Recette_ing_01 @ Recette_ing_05
    - Recette

    La structure que j'ai utilisé:
    Ingredient : Clé; Ingredient_ID
    Ingredient
    Prix_ing

    Recette_ing_01 @ _05: Clé; Recette_ing_ID
    Recette_ID
    Ingredient_ID
    Quantite

    Recette: Clé; Recette_ID
    Nom_Recette
    Etape_01 @ Etape_05 ( pour un textbox contenant le nom de l'étape)
    Instruction_01 @ Instruction_05 (pour un textbox avec les les instructions de travail de ces étapes)
    Portion (il y avait un multiplicateur dans la BD d'origine donc avec la valeur ''Portion'' je peux l'utiliser... travail en cous...)

    Côté formulaires, je me suis créé un pour chaque sous catégories, contenant les entrés; Ingredient_ID
    Quantité
    Prix (qui est un calcul entre le prix des ingrédients et le poids)

    Nom : test001.PNG
Affichages : 408
Taille : 42,8 Ko

    *** Il s'agit de mon second projet en Acces, et j'y travail actuellement donc il n'est pas encore entièrement optimisé et je suis ouvert à tout commentaires***

Discussions similaires

  1. [AC-2010] Exporter la structure d'une requête sous forme de table
    Par docjo dans le forum VBA Access
    Réponses: 8
    Dernier message: 16/09/2013, 17h22
  2. [XL-2010] Structure conditionnelle pour un sous-total
    Par pharkinho dans le forum Excel
    Réponses: 6
    Dernier message: 22/09/2011, 21h11
  3. [1.x] Symfony et structure de projet avec sous-domaines
    Par etoileweb dans le forum Symfony
    Réponses: 2
    Dernier message: 11/12/2010, 22h46
  4. [AC-2007] Relation sous-recette, recette et ingrédient
    Par mrbouchard dans le forum Modélisation
    Réponses: 8
    Dernier message: 14/12/2009, 19h32
  5. Structure récursive ou simple sous-requête ?
    Par RomainVALERI dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/06/2008, 09h10

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