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

Schéma Discussion :

Gestion d'articles avec une date de validité


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Gestion d'articles avec une date de validité
    Bonjour,

    Je travail actuellement à la conception d'une base de donnée pour petit ERP web pour une entreprise travaillant dans le textile.

    Ma question porte sur la gestion des collections et des dates de validités de mon entité Article. Pour simplifier, j'ai 2 entités "produits" une pour les articles personnalisés et fabriqués et une 2ième pour les articles qu'ils achètent a des grossistes.

    J'ai donc un certain nombre de contraintes autours des ces entités :

    "Devis", "Ligne_devis", "Commande", "Ligne_commande", "Bon_livraison", "Ligne_livraison"... etc qui sont liées à mes 2 entités "produit_negoce" et "références".

    Je me demande comment gérer les articles inactif (car ils ont dépassé la date de validité) et le changement de collection. Mes contraintes sont pour l'instant toutes en "RESTRICT". Je pensais laisser tous les "vieux" articles en base par rapport aux informations contenu dans les parties "commande", "bon_livraison" et "facture" mais au bout d'un moment il faudra bien que je nettoie un peu la table pour éviter une baisse de performance.

    Je n'arrive pas à trouver des exemple concret de suppression d'articles tout en conservant un trace de mes commandes et factures... Puisque forcément en supprimant mes articles les clés étrangères de Ligne_commande, Ligne_facture... etc deviendront obsolètes.

    Merci !

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Ponset,

    Juste pour mon info, pourquoi ne pas avoir qu'une seule entité "Article" avec une information sur sa provenance interne/externe ?

    Sinon, pour ta problématique de fond, tu pourrais prévoir :
    - des entités "Historique", avec autant d'entité "Historique" que d'entité que tu veux historiser ;
    - un petit trigger qui, avant chaque suppression d'article (qui aura été historisé) :
    . écrit, dans les entités "Historique" qui vont bien, les infos des entités "mère" qui vont bien ;
    . supprime les enregistrements des entités "mères" ;
    . supprime l'article.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    Citation Envoyé par Ponset Voir le message
    ...Je n'arrive pas à trouver des exemple concret de suppression d'articles tout en conservant un trace de mes commandes et factures... Puisque forcément en supprimant mes articles les clés étrangères de Ligne_commande, Ligne_facture... etc deviendront obsolètes.
    Simplement en mettant en œuvre une entité ArticleInactif selon le MCD:

    Article----0,1-----etre------1,1-----ArticleInactif

    ArticleInactif(#idArticle, DateInactifDepuis, Motif, ...)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour Ponset,

    Juste pour mon info, pourquoi ne pas avoir qu'une seule entité "Article" avec une information sur sa provenance interne/externe ?

    Sinon, pour ta problématique de fond, tu pourrais prévoir :
    - des entités "Historique", avec autant d'entité "Historique" que d'entité que tu veux historiser ;
    - un petit trigger qui, avant chaque suppression d'article (qui aura été historisé) :
    . écrit, dans les entités "Historique" qui vont bien, les infos des entités "mère" qui vont bien ;
    . supprime les enregistrements des entités "mères" ;
    . supprime l'article.
    Citation Envoyé par f-leb Voir le message
    bonsoir,



    Simplement en mettant en œuvre une entité ArticleInactif selon le MCD:

    Article----0,1-----etre------1,1-----ArticleInactif

    ArticleInactif(#idArticle, DateInactifDepuis, Motif, ...)
    Bonjour à vous deux et merci de votre réponse.

    Je vous reponds à tous les 2 en même temps.

    Je n'ai pas qu'une seule entité article parce que mon schéma un peu complexe. Par rapport à l'activité de l'entreprise, j'ai du faire une entité article (pour les articles personnalisés et fabriqués) ses articles ont des groupes (tailles, couleurs, options), des attributs et des références générées par la combinaison des attributs de ces groupes qui me permettent d'avoir un SKU et des stocks.

    A ça vient s'ajouter une certain nombres d'articles qu'ils achètent à un grossiste qui sont gérer à part dans une autre table la fameuse "produit_negoce".

    Je n'avais pas pensé à faire une table d'archive avec les même relations que la table Article afin de les archiver. C'est a priori la meilleur solution. La réponse de f-leb va dans ce sens aussi mais par contre j'ai déjà un booléen actif/inactif pour l'article qui me sert à faire apparaître ou pas l'article dans la commande (selon la date de fin de validité de l'article ou la volonté de l'utilisateur). Mais là aussi il y a des exceptions, il peut y avoir des commandes en "reassort" c'est dire avec un article qui a déjà été commander par un client à un tarif spécifique.

    Bref merci pour vos idées.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Ponset
    mais au bout d'un moment il faudra bien que je nettoie un peu la table pour éviter une baisse de performance.
    Si ta BDD est correctement modélisée et implémentée, même avec 100 000 articles nouveaux par an, tu peux attendre 10 ans avant de commencer à rencontrer des petits problèmes de ce côté là !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. probleme avec une date
    Par somatino dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/03/2006, 15h56
  2. [JDBC] Requête avec une date sous la forme dd/MM/yyyy
    Par sylviefrfr dans le forum JDBC
    Réponses: 6
    Dernier message: 12/11/2005, 09h35
  3. Réponses: 2
    Dernier message: 16/08/2005, 15h33
  4. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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