Miten tuo "kumoa" toiminto toteutetaan fiksusti? Esim Wikipedian artikkelimuutosten kumoaminen?
Ei kai kokonaisia, monen sivun artikkeleita, tallenneta joka kerta uudestaan yhden kirjoitusvirhekorjauksen takia?
Esim oletetaan että meillä on yksi lause:
"Tämä on tällainen pikku testi vain, ei mitään mielenkiintoista"
Jos joku korvaa sanan "pikku" sanaksi "iso" ja joku toinen korvaa tämän jälkeen "ei mitään" sanaksi "paljon".
Niin miten nämä muutokset kannattaisi tallentaa (esim tietokantaan (mysql))?
Ja mitä jos haluaa peruuttaa ensimmäisen muutoksen, mutta säilyttää toisen?
Onko siihen jotain fiksua tapaa?
Ei kai kokonaisia, monen sivun artikkeleita, tallenneta joka kerta uudestaan yhden kirjoitusvirhekorjauksen takia?
Esim oletetaan että meillä on yksi lause:
"Tämä on tällainen pikku testi vain, ei mitään mielenkiintoista"
Jos joku korvaa sanan "pikku" sanaksi "iso" ja joku toinen korvaa tämän jälkeen "ei mitään" sanaksi "paljon".
Niin miten nämä muutokset kannattaisi tallentaa (esim tietokantaan (mysql))?
Ja mitä jos haluaa peruuttaa ensimmäisen muutoksen, mutta säilyttää toisen?
Onko siihen jotain fiksua tapaa?
Vastaukset 1
Vanhimmat
Wikissähän on historia, josta näkee artikkeliin tehdyt muutokset. Esimerkiksi linuxissahan vastaaviin lähdekoodimuutoksiin käytetään diff / patch -ohjelmia, joista diff luo tiedoston, johon on merkattu muutokset alkuperäiseen nähden. Patch sitten lukee muutostiedoston ja lisää muutokset siihen alkuperäiseen tiedostoon. Muutostiedostoon tallennetaan poistettava data ja sen tilalle lisättävä data, joten viimeisen muutostiedoston perusteella voidaan toteuttaa myös undo.
Jotkut wikit käyttävät tietääkseni diff:ä, enkä usko että wikipedian käyttämä periaate paljon siitä eroaa.