|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[SQL]Tabelle 'di back up'
Ciao a tutti
Scusatemi per il titolo poco chiaro ma stamane ho qualche problema neuronico Partendo dal presupposto che quando sono io a disegnare uno schema, preferisco già in fase iniziale non prevedere mai delle cancellazioni fisiche da una tabella. Generalmente alla tabella principale ne associo una in cui setto un campo come attivo oppure no, oppure, per tabelle molto piccole, il campo lo gestisco direttamente dalla tabella stessa. Per es.: Codice:
tabella Lavoratori: id cognome valangataDiCampi.... tabella LavoratoriAttivi lavoratoreId attivo (vero o falso) //oppure nel caso di una tabella piccolina id cognome attivo Questo perchè anche in presenza di interazione con l'utente prima di cancellare qualcosa... tanta è la smania di cliccare sempre su 'Si' qualsiasi cosa ci sia scritto su una finestra di dialogo che, con questo forse poco elegante sistema, ho messo al sicuro molti record dall'oblio :P E' ovvio però che questo modo di fare mi crea dei problemini: 1) Ogni inserimento va su almeno due tabelle 2) Ogni interrogazione dev'essere fatta non dimenticandosi le varie relazioni fra le tabelle 3) Spesso per costruire delle viste un pò più complesse devo sempre fare attenzione a dove il campo 'attivo' è vero Insomma, per cose piccoline, posso anche arrangiarmi... Quello che vi chiedo è se esistano delle funzioni, magari native dei vari db, che tengano traccia e possano memorizzare le variazioni in modo automatico (una volta create le funzioni ovviamente). In pratica dei log, dai quali poter ripescare anche il contenuto di una cancellazione. Grazie a tutti RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
se il db lo permette potrebbero venirti in aiuto trigger e trigger_function
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Grazie mille RaouL. P.S.: scusate, nell'entusiasmo ho dimenticato di postare anche il come: Codice:
CREATE TRIGGER tabellaTrigger BEFORE DELETE on tabella FOR EACH ROW INSERT INTO tabellaBck(campo1, campo2, etc.) VALUES (OLD.campo1, OLD.campo2, OLD.etc);
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
Ultima modifica di RaouL_BennetH : 24-09-2009 alle 14:46. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:38.











ho concluso con: kvegeta, doctordb, Leland Gaunt.









