Ich entwerfe diese Mitarbeiterbewertungsseite und habe mich gefragt, ob mein aktuelles Datenbankdesign das richtige ist oder ob es verbessert werden könnte.SQL Server-Datenbankentwurf für Auswertungen
Dies ist mein aktuelles Design
Tabelle Agenda:
+--------------+----------+----------+-----------+------+-------+-------+
| idEvaluation | Location | Employee | #Employee | Date | Date1 | Date2 |
+--------------+----------+----------+-----------+------+-------+-------+
Date
ist das Datum für die Bewertung geplant durchgeführt werden.
Datum 1 und Datum 2 ist ein Zeitraum, um Messwerte aus einer anderen Datenbank abzurufen.
Tabelle Evaluations:
+--------------+---------+------------+------+----------+
| idEvaluation | Manager | Department | Date | Comments |
+--------------+---------+------------+------+----------+
Tabelle Scores:
+--------------+----------+-------+
| idEvaluation | idFactor | Score |
+--------------+----------+-------+
idFactor
auf eine andere Tabelle bezieht, die den Faktor und eine Beschreibung davon enthält, wie ich seine sagte dies eine korrekte Design??
Meine Sorge ist dies, derzeit gibt es 60 Mitarbeiter, 11 Manager und 12 Faktoren, jeder Mitarbeiter wird zweimal im Jahr von jedem Manager ausgewertet, so in der Agenda Table
gibt es nicht viel Ärger seit seiner einzigen Aufzeichnung pro Auswertung (60 Mitarbeiter = 60 Datensätze), wie immer auf der Evaluations Table
gibt es 11 Datensätze für jede Auswertung, so geht es auf 660 Datensätze (60 Mitarbeiter * 11 Manager = 660), und dann auf die Scores Table
geht es noch größer seit es gibt 12 Faktoren für jede Auswertung, es geht um 7920 Datensätze (660 Auswertungen * 12 Faktoren jeweils = 7920).
Ist das normal ?? Mache ich es falsch? Irgendein Input ist es geschätzt.
EDIT
Lage, Mitarbeiter, #Employee, Leiter und Abteilung werden automatisch von der vb.net Seite, werden sie „importiert“ von einer Active Directory
und seinen überprüften vor dem Einsetzen so doppelten Namen, falsch geschriebenen Namen geladen und so etwas ist kein Problem.
7,920 Datensätze ist nur ein Tropfen in die LKW-Ladung von Wasser, die SQL-Server bei richtiger Verwaltung verarbeiten kann. Sie sollten diese jedoch noch weiter ausbauen und separate Tabellen für Mitarbeiter, Abteilung, Standort und Manager erstellen, damit Sie diese Namen nicht duplizieren. Sie werden in den meisten dieser Tabellen eine Menge IDs haben. –
@ Cᴏʀʏ Ich habe über den Mitarbeiter, Standort und Abteilungstisch nachgedacht, aber über den Manager, wäre es wirklich besser, den Namen in eine ID zu ändern? Angesichts dessen ist es meist zu erkennen, wer die Bewertung mehr als wenn es der Manager des Mitarbeiters ist. – abichango
Der Manager wäre vermutlich die ID eines anderen Employee-Datensatzes. Scratch das von meiner ursprünglichen Liste. –