2016-05-14 2 views
1

Ich habe eine Anforderung, die Daten von 2000 Mitarbeitern Teilnahme zu halten ist.Design der Tabellenstruktur in Orakel-Datenbank

Also sollte die Anwesenheitstabelle Design haben?

365 Spalten jeden Tages im Jahr 2000 vorgeeingefügten Datensätze

und ich werde es täglich über Java-Programm aktualisiert

oder

5 Spalten 2000 Datensätze täglich Einsatz für 365 Tage?

Oder gibt es einen besseren Ansatz?

Antwort

2

Ich denke, du überdenkst Dinge. Angenommen, Sie haben bereits eine Mitarbeiter-Tabelle mit den Angaben der Mitarbeiter, alles was Sie wirklich brauchen, ist eine andere Tabelle mit der Mitarbeiter-ID und dem Datum (und möglicherweise Eintritts- und Austrittszeiten, wenn Sie sich darum kümmern), wo das Vorhandensein einer Zeile anzeigt die Anwesenheit zu diesem Zeitpunkt und das Fehlen von, falls angezeigt, mangelnde Anwesenheit. Sie können diese Abwesenheitstage dann finden, indem Sie sich links auf die Mitarbeitertabelle setzen.

CREATE TABLE employee (
    id NUMBER PRIMARY KEY, 
    -- other details... 
); 

CREATE TABLE attendance (
    employee_id NOT NULL REFERENCES employee(id), 
    attendance_date DATE NOT NULL, 
    PRIMARY_KEY(employee_id, attendance_date) 
); 
+0

danke, Es ist eine gute Idee, obwohl ich nur abwesende Aufzeichnungen halten werde, wird dies weniger Daten haben. Ist das gut? –

+0

@GopalArora Wenn Sie wirklich davon ausgehen können, dass die meisten Mitarbeiter die meiste Zeit anwesend sind, und Sie die Ein- und Ausstiegszeiten nicht im Auge behalten müssen, dann wäre das ein netter Trick. Das einzige Problem ist, wenn Datensätze dort einfügen? – Mureinik

+1

Ja, ich brauche keine Timings und ich werde @EOD einfügen. –

Verwandte Themen