Obtener los datos editados exactos de SQL Server

Tengo dos tables:

  1. Articles(artID, artContents, artPublishDate, artCategoryID, publisherID) .

  2. ArticleUpdated(upArtID, upArtContents, upArtEditedData, upArtPublishDate, upArtCategory, upArtOriginalArticleID, upPublisherID)

    Un usuario que inicia session en la aplicación y actualiza los contenidos de un artículo en la columna (artContents). Quiero saber sobre:

    1. ¿Qué cambios realiza el usuario en los contenidos del artículo?

    2. Quiero almacenar ambas versiones del artículo, versión original y versión editada.

¿Qué debo hacer para hacer las dos tareas anteriores?

  • ¿Algún cambio necesario en las tablas?

  • La consulta para get datos editados exactos de (artContents) .

    • (Los datos editados exactos significan que puede haber 5000 caracteres en los coloumns, el usuario puede editar 200 caracteres en el medio o en cualquier otro lugar en los caracteres de la columna, quiero precisar esos caracteres editados, antes de editar y después de editar)

Nota: Estoy usando ASP.NET con C # para Desarrollar

No podrá realizar la edición exacta con SQL. Necesita un algorithm, como los files diff Unix (que funciona en el nivel de línea). En el nivel de personaje, el algorithm sería una variación de la distancia de Levenshtein . Si diff satisface sus necesidades, puede downloadlo, escribir un procedimiento almacenado para llamarlo y luego usarlo en la database. Esto sería bastante caro.

La parte de su pregunta de mantener las diferentes versiones es mucho más fácil. Agregaría dos colmnns EffDate y EndDate en cada logging. Puede get la versión más reciente buscando EndDate is NULL y encuentra la versión activa en cualquier momento dado. Merge es generalmente útil para mantener dicha tabla.

Básicamente, este tipo de requisito necesita un logging personalizado.

El ejemplo que usted ha proporcionado, es decir, "los datos editados exactos significan que puede haber 5000 caracteres en los coloumns, el usuario puede editar 200 caracteres en el medio o en cualquier otro lugar en los caracteres de la columna, quiero precisar esos caracteres editados, antes de editar y después de editar "

Puede haber un caso en el que el usuario actualice palabras particulares de lugares diferentes del text.

Puede usar http://nlog-project.org/ para el logging, es una herramienta rápida y robusta que normalmente usamos para hacer el logging .net.

También puede echar un vistazo http://www.codeproject.com/Articles/38756/Two-Simple- Approaches- to- WinForms-Dirty-Tracking Asp.net Evento para el seguimiento del cambio de las entidades ¿Cuál sería la mejor manera de implementar cambiar el seguimiento de un object

Por encima de las URL se aclarará algo de air, sobre cómo hacerlo.

Obviamente, necesitarías rastrear y almacenar cada cambio.