praegune kellaaeg 19.06.2025 01:04:53
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
toomasy
HV kasutaja

liitunud: 26.12.2003
|
21.04.2009 15:06:07
Muutmis ajalugu |
|
|
Vajan abi, et kuidas teha mõistlikult lehekülje muutmise ajalugu. Et siis, kui kastutaja midagi sisestab/muudab, siis antud tegevus salvestatakse baasi. Hetkel asi lahendatud, et algul salvestatakse INSERT lause ja pärast UPDATE laused, aga see ei tunud kuidagi mõistlik... Teiseks seda ma ei saa kasutajatele näidata.
Probleem selles, et kui mingis tabelis on 30+ lahtrit ja kasutaja ühte muudab kuidas ma kindlaks teen, et kasutaja just seda lahtrit muutis? Lehekülg php + mysql.
Ette tänades!
Toomas
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
Kernel
HV kasutaja
liitunud: 17.01.2002
|
21.04.2009 16:45:28
|
|
|
INSERT history tabelisse lehe ajaloo salvestamiseks on vägagi mõistlik lahendus. Sama kehtib ka 30+ lahtriga tabeli kohta. Hetkel ei ole piisavalt lähteandmeid, aga võiksid ka proovida oma andmebaasitabelite struktuuri kriitilise pilguga üle vaadata.
|
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
25 |
|
tagasi üles |
|
 |
iceincube
HV veteran

liitunud: 18.11.2005
|
22.04.2009 02:02:20
|
|
|
history kirjete hoidmiseks võib kasutada ka ehk serialiseerimist kui on ühte history tabelsise vaja eri andme kirjeid kokku vaja viia.
Ja enne iga muudatust õige tabeslit võetakse see rida ja salvestatakse historysse.
Aga jah, lähte informatsiooni oleks rohkem vaja.
|
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
toomasy
HV kasutaja

liitunud: 26.12.2003
|
22.04.2009 23:31:50
|
|
|
Oletame, et on tabel mänguasjad kus on lahtrid id, nimi, seeria number, kogus, tootja firma. Nüüd kasutaja lisab uue mänguasja. Siis ajaloo tabelisse hetkel lisatakse kasutaja id, aeg ja lause INSERT INTO mänguasjad SET nimi='keegi', seeria='123',kogus='3' jne. Kui nüüd keegi toodet muudab, siis lisatakse ajaloo tabelisse kasutaja id, aeg ja lause UPDATE mänguasjad SET nimi='keegi', seeria='1234', kogus='3' jne.
Soov oleks, et kuidas salvestada ajaloo tabelisse ainult tehtud muudatus. Näite põhjal, siis et ajaloo tabelisse savestataks kasutaja id, aeg ja seeria='123' muutus seeria='1234'.
Loodan, et on vähe selgem
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
23.04.2009 02:32:21
|
|
|
Kui sellist asja tahad, siis pead tegema lisaloogikat salvestamise käigus:
1) pärid välja vanad andmed (peale submiti kuid enne kui baasi update teed)
2) võtad postitatud andmed ja võrdled vanade andmetega
3) ehitad kokku sql päringu kus uuendad ainult neid väljasid mis on muutunud (kui baasis kogus oli 3 ja postitatud on ka 3, siis võib lugeda mitte muutunuks, sql lausesse lisada pole vaja)
4) kuna muutunud väljade nimekiri ja endised ning uued väärtused on teada, saad logi tabelisse juba sisestada infot stiilis 'kogus: 3 => 4' vms, nii kuidas tahad
Mul endal on omatehtud activerecord tüüpi klass kasutusel (vahendab andmeid baasi ja muu koodi vahel stiilis $objekt->väljanimi = 'väärtus'; $objekt->Save() ), mis sedasama kontrolli asja teeb salvestamise käigus ja olen samasuguseks logimiseks ka kasutanud seda nagu sa tahad logida, seega kui vaja võin näidata ja kasutamist juhendada
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
tanzanite
HV kasutaja

liitunud: 13.05.2006
|
29.04.2009 19:32:55
Re: Muutmis ajalugu |
|
|
toomasy kirjutas: |
...kui mingis tabelis on 30+ lahtrit... |
|
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|