Verstoße ich gegen eine NF-Regel in meinem Datenbankdesign?

8

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:

Geben Sie hier die Bildbeschreibung ein

Mein Problem ist, dass ich die applicant_idauf 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?

Neuling
quelle
1
Ich glaube nicht, dass jemand ohne spezifische Kenntnisse der Geschäftsdomäne / des Unternehmens nur Ihr Datenmodell betrachten und Ihnen realistische Ratschläge zu Schlüsseln, Einschränkungen, Datentypen usw. geben kann. Ich kann Ihnen jedoch sagen, dass nullbare Spalten verletzt werden eine strikte Interpretation von 1NF.
Tag, wenn

Antworten:

10

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.

Karen Lopez
quelle
1
Es gibt nur wenige Dinge zu beachten, außer Tabellen und Spalten :) Mein Land hat Datenschutzgesetze (zeitliche Begrenzung der Vorratsdatenspeicherung, Person hat das Recht auf Zugang zu ihren Daten usw.) und Gesetze zur Diskriminierung aufgrund des Alters, die Arbeitgeber dazu bringen sollten, mindestens zweimal nachzudenken bevor Sie das Alter einer Person in der Interviewphase aufzeichnen.
Tag, wenn
5

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.

Marian
quelle