Visualizzazione risultati 1 fino 3 di 3

Discussione: Generazione Log Modifiche Database

  1. #1
    web1105 non è connesso Neofita
    Data registrazione
    17-08-2015
    Messaggi
    2

    Predefinito Generazione Log Modifiche Database

    Ciao a tutti,

    volevo chiedervi una mano... io ho una pagina molto semplice che si appoggia ad un db così strutturato:

    Id | Barcode | CodiceArticolo | Descrizione |

    che serve sostanzialmente per la ricerca di articoli tramite codice a barre. Ci sono poi altre tre pagine "Inserisci articoli" - "Modifica Articoli" - e "Elimina Articoli" .

    Ora quello che volevo fare era strutturare una una tabella per gestire il log delle modifiche apportate al db , quindi quando qualcuno ha inserito , modificato o eliminato un articolo.

    Per il login degli utenti uso le sessioni.

    Ho cercato in giro ma non trovo nulla di esauriente ... o che comunque faccia al caso mio..

    Mi date qualche spunto ???

    Grazie mille in anticipo

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Solo scrivendo la richiesta hai già risposto alla tua domanda

    tabella per gestire il log delle modifiche apportate al db, quindi quando qualcuno ha inserito , modificato o eliminato un articolo
    Codice:
    CREATE TABLE tabella_modifiche (
      id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
      id_articolo ...,
      id_utente ...,
      data_aggiornamento TIMESTAMP NOT NULL,
      tipo_aggiornamento CHAR(32) NOT NULL
    );
    Questa tabella rappresenta una relazione con attributi tra gli utenti e gli articoli.
    I campi id_articolo ed id_utente dovrebbero essere chiavi esterne.
    Il campo data_aggiornamento rappresenta il momento in cui l'utente ha "aggiornato" l'articolo (per "aggiornamento" si intende anche creazione, modifica o cancellazione), e può essere di un tipo qualunque che sia adatto a rappresentare un istante di tempo (TIMESTAMP, DATETIME...).
    Il campo tipo_aggiornamento indica se l'aggiornamento è una creazione, una modifica o una cancellazione. Puoi usare delle stringhe o dei codici numerici per rappresentare questa informazione.
    Il campo id serve solo per assegnare una chiave primaria efficiente alla tabella. Una scelta più logica per la chiave primaria sarebbe la terna (id_articolo, id_utente, data_aggiornamento), ma sospetto che una chiave così composta rallenterebbe le operazioni di inserimento ed estrazione dei dati. Ti invito a fare delle prove in merito.
    A seconda del tipo di uso che ne farai (recuperare la lista delle modifiche di un utente oppure recuperare la lista delle modifiche per un articolo), potrebbe risultare utile aggiungere l'attributo INDEX alle colonne id_utente od id_articolo.

    Per popolare la tabella dovrai semplicemente eseguire degli INSERT INTO... ogni volta che un utente esegue qualche operazione su un articolo.
    Essendo una tabella di log, dubito che avrai mai la necessità di cancellare dei record, se non per ruotare i log. In quel caso puoi semplicemente cancellare le righe per la data_aggiornamento è più vecchia di una soglia da te fissata.

  3. #3
    web1105 non è connesso Neofita
    Data registrazione
    17-08-2015
    Messaggi
    2

    Predefinito

    Ciao mzanella,

    OK .... dopo qualche prova .... alla fine ho messo in piedi il sistemino di log , grazie anche alle tue dritte .

    Dato poi che ... l'appetito vien mangiando ... ho messo dentro la tabella anche altri campi che servono per tracciare UTENTE | IP | BROWSER | TIPO DI CLIENT | .....

    Sono davvero soddisfatto !!!!!



    Grazie ancora per le info !!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •