Tabela cu log-uri pentru modificari
Last Updated: Feb 22 2019 18:07, Started by
mcelbmag
, Feb 16 2019 13:07
·
0
#1
Posted 16 February 2019 - 13:07
Salut. Sa zic ca am o baza de date cu evidenta unor masini. Id ul acestor masini , cheie primara, este referentiata intr-o tabela ce tine reparatiiele masinilor. As vrea sa fac o tabela in care sa tin modificarile masinilor, nu reparatii, de genul operatorul schimba garajul, sau o imbunateteste ,adauga girofar,ca mai apoi in pagina web sa am o optiune de stadiul actual, si cum era inainte de modificarea facuta de operator. Nu imi dau seama cum sa definesc tabela asta ca sa imi fie usor in pagina web. O idee va rog...
|
#2
Posted 16 February 2019 - 13:49
Faci efectiv o tabela LOG, in care adaugi inregistrarile la orice UPDATE in tabela de masini.
Ai campuri: LOGID, CarID, UserID, PCID(daca exista), DateEdit, UpdateText (ce s-a modificat) |
#3
Posted 16 February 2019 - 14:07
Da cam asa, acum ma gandeam sa caut in wordpress cum au implementat ei versionarea paginilor, au ceva colorat pe doua coloane.
|
#4
Posted 16 February 2019 - 15:58
Tu vrei sa iti tina modificarile facute de fiecare operator in parte.
Adica daca ai zece operatori, fiecare cu user si parola care umbla prin baza si modifica lucruri, tu ca admin sa vezi ce a modificat fiecare operator in fiecare tabela prin care a completat ! E mai mult decat o simpla tabela LOG, ce vrei tu ! Cum sa introduci tu in tabela LOG ce s-a modificat din moment ce la baza este logat un operator care completeaza prin tabele? Trebuie sa fie introduse automat modificarile intr-o tabela care sa contina ID-ul operatorului, campurile, tabelele si modificarile facute de el, iar la aceasta tabela sa ai doar tu acces ! E ceva mai complex ! Edited by M0sGerila, 16 February 2019 - 16:00. |
#5
Posted 22 February 2019 - 09:45
Varianta idealizata e sa ai arhitectura codului modelata dupa event-sourcing (a la domain-driven design). In acest context, "tabela" e cea mai mica problema.
Arhitectura codului trebuie sa fie schimbata, de la strategia "relational" la strategia "appendlog". Acestea fiind spuse, cu suficient efort poti face logging si ca sidecar. Exista diferite optiuni, de exemplu vr-un plugin in baza de date care poate face asta, sau in ORM sau ce plugin ai tu pentru baza de date, si niste hooks comune pentru toate tabelele. Nu stiu ce treaba are wordpress-ul, si mai ales, nu stiu de ce ai cauta inspiratie intr-un astfel de soft extrem de prost dpv calitativ. |
#6
Posted 22 February 2019 - 13:43
Nu ai nevoie de cod pentru asta. Adauga triggere pe tabela pe care iti trebuie pentru eventul AFTER UPDATE. In acel trigger pui un query cu insert in tabela de log, folosind OLD si NEW care tin valorile anterioare respectiv cele noi
|
#7
Posted 22 February 2019 - 14:24
Aparent nu e suficient sa puna trigger. Doreste sa vada si cine a operat modificarile.
|
#8
Posted 22 February 2019 - 18:07
Se numeste audit trail. Are cimpul UserId, deci trigger-ul e suficient. Trebuie si pe insert si pe delete, nu doar pe update.
|
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users