Du vil ikke være i stand til at udføre den nøjagtige redigering ved hjælp af SQL. Du har brug for en algoritme såsom Unix diff
på filer (som virker på linjeniveau). På tegnniveauet ville algoritmen være en variation af Levenshtein-afstand
. Hvis diff
opfylder dine behov, kan du downloade det, skrive en lagret procedure for at kalde det og derefter bruge det i databasen. Det ville være ret dyrt.
Den del af dit spørgsmål om at vedligeholde de forskellige versioner er meget nemmere. Jeg ville tilføje to kolonner EffDate
og EndDate
på hver post. Du kan få den seneste version ved at kigge efter EndDate is NULL
og find versionen aktiv på ethvert givet tidspunkt. Merge
er generelt nyttig til at vedligeholde en sådan tabel.