Ich entwerfe das Datenbankschema für eine Zeiterfassungsanwendung und benötige einen kleinen Ratschlag. Die Anwendung muss es dem Benutzer ermöglichen, für jeden Wochentag die Zeit einzugeben, die er für ein bestimmtes Projekt gearbeitet hat. Was wäre Ihrer Meinung nach der beste Weg, um diese Werte zu speichern?
database-design
Psyche
quelle
quelle
int identity
Spalte am Anfang dieser Tabelle abzulegen.In unserer Zeiterfassungsanwendung speichern wir auch die Start- und Endzeiten der Arbeit. Wir fügen der Datenbank für jede einzelne Aufgabe an einem bestimmten Tag eine neue Zeile hinzu und berechnen die Summe, bevor wir sie anzeigen. Überlegen Sie, ob diese Informationen in Zukunft nützlich sein werden. Es ist sehr schwierig, sie später zu integrieren. Es ist nicht zu kompliziert, die Zeilen eines Tages zu gruppieren.
quelle
Ich würde eine Join-Tabelle verwenden, die den Benutzer mit einem Projekt verbindet und auch die zusätzlichen Daten speichert
Die Zeit ist hier in Minuten, kann aber auch in Sekunden angegeben werden (obwohl dies möglicherweise überentwickelt ist).
Natürlich können Ihre Schlüssel für Benutzer und Projekt unterschiedlich sein, aber ich denke, Sie verstehen, was ich meine.
quelle
Ich habe zuvor eine Zeiterfassungsanwendung erstellt, mit der der Administrator nur die Zeiten aktualisieren kann. Sie möchten nicht, dass ein einzelner Benutzer seine Stunden bearbeiten kann, da Betrug ein Problem sein kann. Wenn jemand vergisst, sich anzumelden, kann der Administrator einfach die Stunden bearbeiten. Wenn der Benutzer jedoch einen Kunden hat und die Stunden nicht seine eigenen sind, sollte er in der Lage sein, die Stunden für den Kunden zu bearbeiten, jedoch nicht für sich selbst als Mitarbeiter.
Ich hatte eine Benutzertabelle mit dem Namen, der E-Mail-Adresse, der letzten Aktion usw. des Benutzers und eine
usertimestamp
Tabelle mit den tatsächlichen Schlägen.Dies ist einfach der
usertimestamp
Tisch, aber ich denke, das ist alles, was Sie wirklich gesucht haben. Ich habe auch zulässige IPs, eine Firmentabelle (da sie eine Liste von IPs eingeben können), Kunden für ein Unternehmen (getrennt von Mitarbeitern) und Kundenzeitstempel, um die Kundenzeiten für die Rechnungsstellung für separate Unternehmen zu verfolgen, die Sie möglicherweise basierend auf hinzufügen möchten Deine Bedürfnisse.quelle