Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Mysql & PHP] Log modifiche record di un DB

    Rieccomi qua come al solito con le mie domande impossibili

    Spiego subito senza tergiversare, vorrei se possibile avere un log di tutte le modifiche al database, in modo da poter avere un rollback della situazione.

    Non ho ancora le idee chiare, ma al momento sono arrivato qui:

    ad ogni modifica, inserimento o cancellazione, eseguo una specie di dump del record dove sto lavorando, ad esempio avevo in mente una tabella del genere

    TabellaStorico:
    NomeTabella varchar(95)
    ID int (se presente)
    DatiPrecedenti text
    Query text

    Dove DatiPrecedenti sono il dump dei dati prima di modificare il record e Query è la query di aggiornamento.

    Mi sembra un po' macchiavellico come sistema se ne avete di altri migliori o qualche parola chiave da cercare su internet perchè non riesco a trovare info sull'argomento

    Intanto ringrazio per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    magari aggiungici l'ip di chi effettua l'inserimento/modifica

  3. #3
    no no le modifiche le faccio sempre io.. mi serve solo come rollback

  4. #4
    uppino

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    mah non per dire niente, ma secondo me l'idea tua è perfetta così.
    cioè non c'è altro modo di salvare i dati se non su file o database.

    edit:

    se non effettui miliaia di modifiche io invece che sovrascrivere i dati, crerei un campo "data" e e assegnerei un id univico a tutti gli inserimenti, in modo da non perdere nessuna traccia delle operazioni effetuate sul db.

  6. #6
    bella l'idea..

    faccio così
    mi prendo ogni campo della tabella e me lo salvo con data
    in questo modo li posso recuperare singolarmente

    fantastico grazie mille per l'idea ^^

    costruisco così la tabella:
    CREATE TABLE IF NOT EXISTS `portali_09`.`RollBackTable` (
    `idRBT` INT NOT NULL AUTO_INCREMENT ,
    `DataModifica` DATE NOT NULL ,
    `NomeTabella` VARCHAR(45) NOT NULL ,
    `NomeCampo` VARCHAR(45) NOT NULL ,
    `Dato` TEXT NOT NULL ,
    `Utente` INT NOT NULL ,
    PRIMARY KEY (`idRBT`) )
    ENGINE = InnoDB

    a data uguale corrisponde modifica contemporanea quindi è la stessa, considerando che ho anche l'utente so chi ha fatto i danni xD

    grazie mille :P

  7. #7
    anzi.. tocca che gli metto i due dati.. :s

    così almeno so con cosa l'ho modificato..

    CREATE TABLE IF NOT EXISTS `portali_09`.`RollBackTable` (
    `idRBT` INT NOT NULL AUTO_INCREMENT ,
    `DataModifica` DATE NOT NULL ,
    `NomeTabella` VARCHAR(45) NOT NULL ,
    `NomeCampo` VARCHAR(45) NOT NULL ,
    `DatoVecchio` TEXT NOT NULL ,
    `DatoNuovo` TEXT NOT NULL ,
    `Utente` INT NOT NULL ,
    PRIMARY KEY (`idRBT`) )
    ENGINE = InnoDB

    ditemi se per caso è sbagliata come cosa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.