Ich habe drei Tabellen (viele in Wirklichkeit aber diese drei sind die, die ich habe jetzt gerade über Sorgen zu machen)Zerstörungs Updates, Versionierung Finanzdaten in SQL Server 2008
Eine Produktlinie Tisch wie ...
ProductLineId (pk)
Name
Description
Price
Finance Event (FK)
und eine Finanzereignistabelle wie ...
EventId (pk)
Event Description
und ein Finanztransaktions Tisch wie ...
Wenn ein Verkauf verarbeitet wird, erzeugt Transaktionsaufzeichnungen auf der Grundlage der Finanz Veranstaltungen usw.
Die Frage ist; Wenn dann jemand im Admin eingeht und das Finance-Ereignis ändert, was die beste Möglichkeit ist, die Ereignistabelle zu versionieren, während der Primärschlüssel erhalten bleibt.
Lassen Sie Finanztermine nicht ändern. Setzen Sie ein 'IsActive'-Feld auf das Finanzereignis, und wenn die Leute "ein Ereignis ändern" wollen, machen Sie es so, dass das alte deaktiviert und ein neues erstellt wird. Finanz-y-Leute werden verstehen, wie wichtig es ist, ein Audit beizubehalten. – AakashM
Ich habe bereits ein Archived BIT hinzugefügt und das Auto-Inkrement beendet. Technisch gesehen müsste die Transaktionstabelle wissen, auf welcher der, möglicherweise vielen, Versionen der Daten basierend darauf basiert. –
Sie können eine Audit-Tabelle erstellen und sie entweder über DML-Trigger verwalten oder indem Sie die Anweisung 'OUTPUT' zu Ihren DML-Anweisungen hinzufügen. Ich gab ein 'OUTPUT' Beispiel [hier] (http://stackoverflow.com/questions/9243389/sql-server-2005-knowing-new-record-is-inserted/9247000#9247000). –