Bonjour,
Je cherche à concevoir une base de données « recette ».
Le procédé peut paraître commun et simple mais un grand souci d’historique se pose.
Je m’explique :
Ci-dessous un modèle conceptuel de donnée relativement simplifié :
Maintenant je veux pouvoir modifier des données, tels que:
-quantité d'un ingrédient
-ordre des ingrédients
-supprimer un ingrédient
- un ingrédient peut intervenir plusieurs fois dans une recette avec un ordre différent.
Tout en sauvegardant les anciennes valeurs.
C'est à dire que je veux pouvoir retrouver les quantités et les ingrédients que j'ai utilisé dans mes recettes sauvegardés. Donc il ne m'est pas autorisé de modifier (ni supprimer) une ligne de la BDD
Une solution fonctionnelle à cela est de créer un nouvelle table contenant des révisions de recette:
Donc je peux modifier une recette, il suffirait de faire une nouvelle révision si besoin est. C'est à dire que si j'ai besoin de modifier une quantité d'un ingrédient, je dois créer un nouvelle révision et indiquer la date à laquelle je l'ai faite. Ainsi avec cette date je pourrais retrouver mes anciennes compositions et je pourrait également affiché que les "nouvelles" recettes.
Le souci est que si une recette est constitué de 5000 ingrédients et que je m'aperçois au bout d'une semaine d'utilisation que l'ingrédient x n'est pas nécessaire, je vais devoir créer une nouvelles révision et sauvegarder à nouveau 4999 lignes identiques aux autres
Quel gaspillage
Mon modèle ne serait donc pas optimisé...
Quelqu'un aurait-il une meilleur solution ?
Partager