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 :

[MR]Méthode de suppression logique d'enregistrements


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Points : 64
    Points
    64
    Par défaut [MR]Méthode de suppression logique d'enregistrements
    Bonjour,

    Je suis à la recherche d'une méthode propre de suppression de mes enregistrements pour une table.

    J'ai une table PrevisionDesVentes avec les champs :
    - année,
    - article (clé étrangère),
    - quantité.

    Cette table comporte une clé composite UNIQUE portant sur les champs année et article.
    Ceci afin de s'assurer de n'avoir qu'une seule prévision de vente par produit par année.
    Pas de doublons avec des quantités différentes donc ...

    La solution qui revient souvent c'est d'ajouter un champs (flag) de suppression.

    Problème : ma clé composite va me bloquer ... dès que je rajoute un nouvel enregistrement pour le même article, la même année ...


    J'ai bien pensé à créer une seconde table BckPrevisionDesVentes.
    Les champs seraient identiques mais sans contrainte de clé composite ni étrangère.

    J'aurais alors juste à copier coller les enregistrements de PrevisionDesVentes vers BckPrevisionDesVentes avant suppression.

    Problème : Le champs article de BckPrevisionDesVentes peut pointer sur du vide si l'article a été supprimé. Ce qui veux donc dire que je dois aussi archiver les articles avant suppression ... qui eux mêmes pointent sur d'autres tables ... etc ... en gros je dois archiver chaque table ...

    Est-ce la seule solution ?

    Merci

  2. #2
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Tu veux gérer un historique (puisque tu veux ajouter un nouvel enregistrement annee,article) ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Oui je souhaite avoir un historique au moins pour les opérations de suppression.

    Une solution est-elle préférable à une autre ?

    Merci

  4. #4
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Si tu veux que chaque suppression soit mémorisée, tu dois utiliser un déclancheur en DELETE sur ta table qui fera un INSERT dans une table historique de même structure mais de clé primaire différente pour gérer les doublons.
    Tu utilises quoi comme SGBD?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    Ok merci pour cette réponse

    Ce projet tournera sous Oracle 10g donc je devrais y arriver .

    On souhaite également savoir qui à supprimé les tables.
    Le plus simple à mon sens est de générer un log au niveau du serveur d'appli avec les infos suivantes :
    - Date/heure
    - Utilisateur
    - Table
    - Id ligne à supprimer

    Qu'en pensez-vous ?

  6. #6
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Dans le corps du déclencheur, il y a peut-être la possibilité de savoir qui a lancé le DELETE. Je ne m'en souviens plus, poste ton message dans le forum Oracle, il y a des fortiches qui le sauront sans doûte.
    Bye

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    Bonjour

    Je ne pense pas qu'Oracle puisse faire quoi que ce soit là dedans puisque c'est le conteneur de servlet qui se connecte à la base avec un unique accès JDBC.
    Tout passe donc par le même 'tuyau' entre le serveur d'appli et la bdd.

    Les utilisateurs et leurs droits sont gerés au niveau de l'application elle-même et ca ne va pas plus loin.

    Donc ca me conforte finalement dans mon idée de logger l'activité à risque sur le serveur d'appli pour savoir qui fait des betises :d.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression logique d'enregistrement avec Spring
    Par jiddou dans le forum Spring Web
    Réponses: 1
    Dernier message: 13/06/2016, 17h38
  2. [VB][rdo] Strategie de suppression massive d'enregistrements
    Par Bicky dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/10/2005, 14h12
  3. suppression automatique des enregistrements
    Par abdou.sahraoui dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 13h45
  4. [VB.NET]Suppression d'un enregistrement dans un DataGrid
    Par San Soussy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/06/2005, 10h30
  5. Suppression d'un enregistrement
    Par denisfavre dans le forum IHM
    Réponses: 3
    Dernier message: 04/10/2004, 11h03

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