2016-08-04 48 views
1

Ich habe zwei Tabellen, login_inf (Informationen über Login) und history (Historie der Änderungen in der Datenbank, zum Beispiel die Zeile editierte angegeben) - Bild unten:SQL Schema, drei Relationen nur zwischen zwei Tabellen, kann ich das tun?

enter image description here

Ich möchte wissen, welcher Benutzer haben eine bestimmte Aktion, welcher Benutzer eine Zeile hinzugefügt hat (created_by), welcher Benutzer eine Zeile bearbeitet hat (modified_by) und welcher Benutzer eine Zeile gelöscht hat (removed_by). Ist mein Schema korrekt?

Relations:

history.created_by <-> login_inf.login 

history.modified_by <-> login_inf.login 

history.removed_by <-> login_inf.login 

Also diese drei Spalten in der Tabelle Geschichte sind eine Spalte von login_inf, Ich habe gerade den Namen.

+2

Ihr Schema ist in Ordnung. –

+0

Ich habe diese Mehrfachreferenzen 10 bis 12 tief gesehen bevor ... Ihnen geht es hier gut. – Twelfth

+0

Vielen Dank für die Antwort :) – mirka

Antwort

0

Ihr Schema sieht gut aus. Denken Sie daran, dass Sie das Einfügen in Ihre Tabelle history über Trigger oder Code erzwingen müssen, und dies kann Ihre Datenbank stark belasten, wenn Sie viele Änderungen haben. Ihre history Tabelle kann auch sehr groß werden.

+0

Vielen Dank für die Antwort :) Ich habe Trigger für Zeilen generieren in meiner Tabelle "Geschichte" und ich weiß, dass es meine Datenbank verlangsamen wird. Ich denke, dass diese Tabelle nach ein paar Monaten aufgeräumt wird, weil die Daten in dieser Tabelle nicht mehr nützlich sind. – mirka

+0

Gern geschehen. Schön, dass wir helfen konnten. –