Fremdschlüssel und Primärschlüssel
Andi
- datenbank
Hallo,
ich habe ein kleines Datenbankdesignproblem.
Ich möchte zu einem Paket alle Preise und die dazugehörigen Preise zur jeweiligen Leistung abspeichern.
Dazu habe ich folgendes überlegt:
Pakete0 (PaketNr,Paketname) Paketnr Primärschlüssel
Pakete1 (PaketNr,DatumVon,DatumBis) Alle Primärschlüssel
Pakete2 (PaketNr,DatumVon,DatumBis,LeistungsNr,Einkaufspreis,Verkaufspreis) PaketNr,DatumVon,DatumBis,Leistngsnr Primäschlüssel
Zu meinem Problem: Sind die Schlüssel hier richtig verteilt? Es kommt mit komisch vor, dass ich in Pakete2 4 Felder als Primärschlüssel habe?
Danke für eure Hilfe
Andi
Hallo,
Pakete0 (PaketNr,Paketname) Paketnr Primärschlüssel
Pakete1 (PaketNr,DatumVon,DatumBis) Alle Primärschlüssel
Pakete2 (PaketNr,DatumVon,DatumBis,LeistungsNr,Einkaufspreis,Verkaufspreis) PaketNr,DatumVon,DatumBis,Leistngsnr PrimäschlüsselZu meinem Problem: Sind die Schlüssel hier richtig verteilt? Es kommt mit komisch vor, dass ich in Pakete2 4 Felder als Primärschlüssel habe?
Ähm ... nein. Das ist so nicht korrekt. Es gibt immer nur einen Primärschlüssel pro Tabelle. Das ist ein eindeutiger Identifier. Da fallen Datum und Preis schonmal weg.
Außerdem verstehe ich nicht, wieso du überhaupt drei Tabellen machen willst. Vielleicht verstehe ich nicht, was du machen willst, aber eigentlich reicht doch eine Tabelle:
Pakete (PaketNr,Paketname,DatumVon,DatumBis,LeistungsNr,Einkaufspreis,Verkaufspreis) Paketnr Primärschlüssel, LeistungsNr Fremdschlüssel (nehme ich an)
ciao,
hofi
Hallo hofi,
genau es reicht auch eine Tabelle. Ich habe mal wieder viel zu kompliziert gedacht.
Gruß
Andi
Hallo,
Ähm ... nein. Das ist so nicht korrekt. Es gibt immer nur einen Primärschlüssel pro Tabelle.
Ein Primärschlüssel kann afaik bei den meisten DBS aus beliebig vielen Attributen bestehen, im Extremfall sogar aus allen Tabellenattributen, wenn Eindeutigkeit nur so zu gewährleisten ist.
Allerdings bildet das DBS dann interm meist durch eine eindeutige ID (also ein einziges Schlüsselattribut) ab.
Gruß,
Jörg
Moin moin!
Hallo,
Ähm ... nein. Das ist so nicht korrekt. Es gibt immer nur einen Primärschlüssel pro Tabelle.
Ein Primärschlüssel kann afaik bei den meisten DBS aus beliebig vielen Attributen bestehen, im Extremfall sogar aus allen Tabellenattributen, wenn Eindeutigkeit nur so zu gewährleisten ist.
Allerdings bildet das DBS dann interm meist durch eine eindeutige ID (also ein einziges Schlüsselattribut) ab.
Mein ich doch. :-)
Ich wollte nur darauf hinweisen, dass es nicht viele verschiedene Primärschlüssel pro Tabelle gibt (und das in diesem Fall auch die Paketnummer ausreicht).
ciao,
hofi
Glück auf!
Ich wollte nur darauf hinweisen, dass es nicht viele verschiedene Primärschlüssel pro Tabelle gibt (und das in diesem Fall auch die Paketnummer ausreicht).
Trotzdem ist die Aussage des OP
PaketNr,DatumVon,DatumBis,Leistngsnr Primäschlüssel
nicht falsch. Der Primärschlüssel der Paket-Relation kann durchaus durch diese vier Attribute modelliert werden - ob das sinnvoll ist, steht auf einem anderen Blatt, aber möglich ist es.
Wie die unterschiedlichen DBMS das dann umsetzen, spielt m.E. eine eher untergeordnete Rolle.
Gruß,
der Juve
yo,
ich habe da meine bedenken, dass es mit einer tabelle getan ist. aber um das genau zu klären, wäre es hilfreich, wenn du uns erst einmal die entiäten, bzw. deine ausgangssituation erläutern könntest. dann klärt sich das auch sehr schnell mit den primar- und fremdschlüssel.
Ilja