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.