Ich bin ein Neuling beim Erstellen von Datenbanken ... Ich muss sie für meine Rekrutierungs-Webanwendung erstellen.
Meine Bewerbung muss Screenings, Prüfungen und Interviews mit Bewerbern planen und das Ergebnis in der Datenbank speichern.
Mein Datenbankschema lautet wie folgt:
Mein Problem ist, dass ich die applicant_id
auf anderen Tabellen aufgenommen habe ... zB Prüfung, Interview, Prüfungstyp.
Verstoße ich gegen eine Normalisierungsregel? Wenn ja, was empfehlen Sie, um mein Design zu verbessern?
normalization
database-design
Neuling
quelle
quelle
Antworten:
Außer der Normalisierung sind nur wenige Dinge zu beachten. Zum Beispiel haben Sie eine Spalte für AGE. Wirst du das jedes Jahr aktualisieren? Woher wissen Sie, wann Sie das tun müssen? Gleiches gilt für jahrelange Erfahrung.
Es gibt einige Spalten, die wahrscheinlich mehrere Werte für jeden Bewerber haben: Schule, Kurs usw.
Möglicherweise möchten Sie auch Ihre Optionalität für diese Beziehungen überprüfen. Im Moment muss ein Bewerber eine entsprechende Prüfung haben, aber mit einer Prüfung muss kein Bewerber verbunden sein. Ich vermute, das ist rückwärts, wie die Dinge im wirklichen Leben funktionieren. Sie haben ähnliche Probleme mit allen anderen Beziehungen.
Es ist hilfreich, wenn Sie die Beziehungen nach dem Erstellen vorlesen.
quelle
Ich denke, dass Sie tatsächlich eine viele zu viele Beziehung zwischen Ihrer Bewerber-Tabelle und den anderen Haupttabellen benötigen (hauptsächlich Screening und Prüfung). Wenn Sie ein Screening haben, das mehr als einen Bewerber enthält (und die ähnliche Situation für die anderen Tabellen).
Ich würde ein Interview mit einem einzelnen Kandidaten sehen, aber eine Prüfung oder eine Screening-Sitzung mit mehr als einem Kandidaten. In diesem Fall benötigen Sie eine Beziehungstabelle, die das Screening mit dem Antragsteller verknüpft.
Sehen Sie hier über Viele-zu-Viele-Beziehungen.
quelle