Du kommer inte att kunna göra den exakta redigeringen med SQL. Du behöver en algoritm som Unix diff
på filer (som fungerar på linjenivå). På teckennivå skulle algoritmen vara en variant av Levenshtein-avstånd
. Om diff
uppfyller dina behov kan du ladda ner den, skriva en lagrad procedur för att anropa den och sedan använda den i databasen. Detta skulle bli ganska dyrt.
Den delen av din fråga att underhålla de olika versionerna är mycket enklare. Jag skulle lägga till två kolumner EffDate
och EndDate
på varje post. Du kan få den senaste versionen genom att leta efter EndDate is NULL
och hitta versionen aktiv vid varje given tidpunkt. Merge
är i allmänhet användbar för att underhålla en sådan tabell.