Es ist nicht falsch, Spaltennamen zu haben, die sich vom Domänennamen der Spalte unterscheiden. In der Tat ist es oft notwendig.
Die Alternative - mit zwei Spalten mit dem gleichen Namen - ist schlecht. Woher weißt du, in welcher Spalte Deckblatt und welches Seitenblatt angegeben ist? Nach Position? Dies verknüpft die Bedeutung des Inhalts mit der physischen Darstellung der Daten. Was passiert, wenn ich Book_ID
und nur eine der Spalten Paper_ID
auswähle? Ohne zusätzliche externe Informationen würde man nicht wissen, was die Daten bedeuten. Vielmehr sollte diese zusätzliche Information Teil der Darstellung sein, damit sie möglichst selbsterklärend ist.
In Beziehungen, in denen jede Rolle von einer eindeutigen Domäne ausgefüllt wird, ist es einfach, einfach den Namen der Domäne als den Namen der Rolle ohne Verwirrung zu verwenden. Wenn ein Buch aus einer einzigen Art von Papier besteht, macht es Sinn, über das Papier des Buches zu sprechen. Selben für ein Fahrradsitz und die Nase einer Person.
Wenn jedoch eine Beziehung mehr als eine der gleichen Art von Sache hat, müssen wir die Rolle jeder Sache angeben. Unterscheiden Sie Cover_Paper
und Page_Paper
wie Sie es getan haben, ist der richtige Weg, es zu tun. (Es ist zu schade SQL DBMS haben keine gesonderte Rolle und Domainnamen für jede Spalte, aber ich schweife ab.)
Sie es Cover_Paper_ID
und Page_Paper_ID
nennen könnte, es ist eine Art Branchen Konvention ID Surrogat ID-Spalten zu befestigen, obwohl Ich denke, es liest sich besser ohne. In anderen Beziehungen ist es oft ausreichend, nur die Rolle ohne die Domäne zu schreiben - z. in einem Marriage
könnten wir Spalten für Husband
und Wife
haben, anstatt Husband_Person
und Wife_Person
zu schreiben.
Sowohl Edgar Codd (Autor von A Relationale Modell von Daten für große Shared Data Banks) und Peter Chen (Autor von Die Entity-Relationship-Modell - Gegen eine einheitliche Sicht auf Daten) diskutieren Rollen in ihren Papieren. Ich empfehle sehr, beide zu studieren, besonders da nur sehr wenige Online-Quellen das Thema erwähnen.
Und um die Fremdschlüssel zu bestimmen, bestimmen Sie zuerst die Beziehung zwischen Buch und Papier. Ist es M-N, 1-1 (Wer hat die volle Teilnahme?), 1-M. Weil keine Tabelle zwei Fremdschlüssel haben sollte, die nicht zusammengesetzt sind und auf dieselbe Tabelle verweisen ... –