Andi: Fremdschlüssel und Primärschlüssel

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

  1. 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ü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?

    Ä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

    1. Hallo hofi,

      genau es reicht auch eine Tabelle. Ich habe mal wieder viel zu kompliziert gedacht.

      Gruß
      Andi

    2. 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

      1. 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

        1. 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

  2. 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