Kann ein Primärschlüssel in mehreren Entitys vorkommen?

... komplette Frage anzeigen

4 Antworten

Eine Datenbank wird im Hinblick auf eine Anwendung, eine Aufgabe erstellt. Eine Datenbank zu erstellen ohne die Aufgabe zu kennen ist sinnlos. Was den Primärschlüssel betrifft, der Datenbank ist es egal wie Du Deine Tabellen einrichtest und welche Primärschlüssel Du dafür verwendest. Das ist genauso, wie beim Briefeschreiben Du vom Textprogramm wissen wolltest, was Du schreiben sollst. Du bist hier der einzige, der die Aufgabe kennt und Du fragst uns, welchen Primärschlüssel Du nehmen sollst. Aus der Sicht der Datenbank kannst in jede Tabelle die Kunden-Nr als Primärschlüssel nehmen. Nur kann dann der Kunde nur eine Bestellung mit einer einzigen Rechnungsposition ordern. Willst Du das? Für die Rechnungen habe ich bei mir in meiner Datenbank einen Verbundschlüssel als Primärschlüssel, bestehend aus Kunden-Nr, Rechnungs-Nr, Rechnungs-Datum und Artikel-Nr. Wenn der Kunde einen Artikel mehrmals bestellt, geht das nur über das Feld Anzahl. Manche Datenbankphilosophien sehen in so einem Fall eine Auslagerung in eine weitere Tabelle vor, wofür ich persönlich keinen Vorteil erkennen kann. Mir reichen die 57 Tabellen, die ich in meiner Anwendung (beim Kunden installiert) habe.

Antwort bewerten Vielen Dank für Deine Bewertung

Kannst du machen, aber damit kann ein Kunde nur exakt eine Bestellung und eine Rechnung haben. Überleg nochmal kurz ob das so gewollt ist.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von xeemiix
17.02.2016, 11:07

Ok.

Warum kann er dann nur eine haben?

Sorry, stehe geraden ein bisschen aufm Schlauch :x

0

Eine Rechnung lässt sich nicht eindeutig am Kunden identifizieren. Deswegen könntest du höchstens die Kundennummer als Fremdschlüssel der Entität "Rechnungen" zufügen.
Innerhalb einer Entität kann es nur einen Primärschlüssel geben. Hast du einen zweiten, eindeutigen Identifikator, wird dieser als "Secondary Key" (deutsche Übersetzung ist gerade nicht präsent) bezeichnet oder einfach in der Datenbank ein Index als unique gekennzeichnet.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von xeemiix
17.02.2016, 11:17

Das weiß ich auch. :D

Es gut darum, einen Primärschlüssel aus "Kunde" in "Rechnung" UND "Bestellung" zuschreiben. Ob man das machen darf !? Oder ob das generell nicht geht.

Ist ja auch logisch, dass es dort ein Fremdschlüssel ist.

Es geht um die Anzahl, wie oft ich einen Primärschlüssel aus einem Entity in ein anderes als FS schreiben kann.

0

Dann könntest du die Tabellen auch gleich zusammenfassen, bzw. das was telematiker gesagt hat. Die Kunden_Nr in "Bestellung" aufzunehmen macht Sinn, allerdings nicht als Primärschlüssel.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von xeemiix
17.02.2016, 11:12

Naja, wäre dann ja eh ein Fremdschlüssel

0

Was möchtest Du wissen?