2016-07-11 19 views
-4

Ich baue eine Datenbank, die Protokolle für JobsWelche ist besser Datenbank-Design

I enthalten bin jetzt diese Datenbank mit:

Jobs:

id || job_name || etc... 

Job-Protokoll, das die enthalten Statusdaten

um den aktuellen Jobstatus zu erhalten, bin ich auf den zuletzt eingefügten Status angewiesen, aber dies führt zu h arder fragt

Ich dachte, wenn ich dies tun: Jobs:

id || job_name || etc... || job_status_id 

aber diese Daten zu wiederholen, führen als job_status_id bereits

so gespeichert ist das Hinzufügen von job_status_id zu Arbeitsplätzen Tabelle statt abhängig beim letzten eingefügten Status, um den aktuellen Auftragsstatus zu erhalten Ist das, was effizienter ist (hat es irgendwelche anderen Vorteile)? Oder sollte ich einfach bei dem bleiben, was ich schon habe?

+1

hängen davon ab, was wie Anwendung brauche, denke ich –

+0

Beide Lösungen sind lebensfähig. Wenn Sie die letzte 'job_status_id' zu den' Jobs' hinzufügen, ist es einfacher und schneller, Auswahlen daraus zu machen (keine Jons und komplizierte SQL-Logik. ** Aber ** Sie müssen sicherstellen, dass dieser letzte Status immer korrekt ist, dh implementieren triggert in job_logs, die es aktualisieren.Einfügungen und Aktualisierungen sind dann ein wenig langsamer. –

Antwort

0

Es hängt von Ihrem Bedarf ab. Wenn es zu komplexeren Abfragen führt, um den zuletzt eingefügten Status zu erhalten, ist eine Jobstatus-ID sinnvoll. Ich würde mit der ID gehen, denn wenn Sie von diesem Feld abfragen müssen, können Sie einen Index darüber werfen, wenn es ein Problem wird, bei dem ich sicher bin, dass der letzte eingefügte Status den Jobstatus berechnet. So haben Sie beim erstmaligen Einfügen oder Aktualisieren den Auftragsstatus, sodass Sie ihn nicht jedes Mal neu berechnen müssen. Wenn das, was Sie brauchen, Leistung ist, dann ist das der bessere Weg, um es abzuleiten. Speicher ist billig, und wir reden über eine ganze Zahl, also ist es überhaupt nichts. Es sei denn, wir reden hier über den Unterschied zwischen 20ms. ;)

Verwandte Themen