Derzeit möchte ich eine Tracking- / Verlaufstabelle wie folgt strukturieren:
- Primärschlüssel - ID
- OtherTableId - fk
- fieldName - Name des Feldes, dessen Verfolgung
- OldValue
- Neuer Wert
- Nutzername
- CreateDateTime
Im Grunde möchte ich eine Tabelle haben, die den Verlauf einer anderen Tabelle verfolgt und den Spaltennamen des geänderten Felds mit dem neuen und dem alten Wert speichert. Meine Frage ist, kann jemand Löcher in dieses stecken? Was ist der einfachste Weg, um sicherzustellen, dass nur ein Spaltenname aus den von ihm verfolgten Tabellen in die Spalte fieldName eingegeben wird? Momentan habe ich die Möglichkeit, eine Aufzählung in dem von mir erstellten Service zu haben oder eine andere Statustabelle zu erstellen und den Feldnamen zu einem fk zu machen. Irgendwelche besseren Ideen?
Ziel bearbeiten : Derzeit gibt es nur 2 Felder, die wir verfolgen möchten. Ein Feld wird auf einer Webseite angezeigt, um den Verlauf anzuzeigen, auf das andere Feld wird nur von einer Abteilung zugegriffen, und sie haben Zugriff auf eine Ansicht der Datenbank, die sie abfragen könnten. Sie würden nur dieses eine Feld abfragen, um Informationen darüber zu erhalten, wer das Feld geändert hat und wohin. Aus diesem Grund wollten wir festlegen, dass ein Datenbankfeld die Tabellenspalte definiert, anstatt eine genaue Kopie des Tabellendatensatzverlaufs zu haben. Wir wollen nur zwei Felder mit der Möglichkeit verfolgen, Felder in der Zukunft hinzuzufügen oder zu entfernen.
Vielen Dank!