Jump to content
php.lv forumi

undo / journaling


black

Recommended Posts

Man ir kaut kas līdzīgs CMS sistēmai, kur var pievienot, labot, dzēst kaut kādus objektus. Lai būtu vieglāk saprast, pieņemsim, ka tie ir weblapas ziņu ieraksti, kas sastāv no virsraksta, ziņas satura, un publicēšanas datuma. Tas, ko es gribu - lai pēc raksta rediģēšanas parādītos undo poga, kas ļautu atcelt, piemēram, pēdējās 3 notikušās izmaiņas. Jautājums - vai kāds no jums ir taisījis kaut ko tamlīdzīgu ar MySQL? Viens no variantiem droši vien būtu katrai tabulai (piem, news) uztaisīt vēl vienu tabulu (piem, news_history), un uzrakstīt pāris trigerus (ON INSERT/UPDATE/DELETE), kas izmaiņas saglabā history tabulā. Kādi ieteikumi / pārdomas par tēmu?

Edited by black
Link to comment
Share on other sites

veeel viens variants vareetu buut, ka tajaa pashaa tabulaa liec iekshaa visas izmainjas.

katrs labojums izveido jaunu ierakstu, ar parent id, kuraa tiek noraadiita ieprieksheejaa versija.

bet tu saproti, ka shaada tabula izaugs diezgan aatri. njemot veeraa no savas pieredzes, ka viens raksts parasti tiek labots vairaakas reizes. nu reekjini, ka tabula buus 3x lielaaka nekaa taa vareetu buut.

Link to comment
Share on other sites

Kādi ieteikumi / pārdomas par tēmu?

Liekas tas ir vienīgais veids kā uztaisīt undo - glabāt `history` tabulā.

 

Ja vajag vairākas tabulas, tad var izmantot vienu kopīgo tabulu, kurā iekšā būs saformēts "vecais ieraksts" XML-ā. (principā varēs uzkabināt uz jebkuru tabulu)

Link to comment
Share on other sites

×
×
  • Create New...