Ergebnis 1 bis 4 von 4

Thema: Zwischentabelle erstellen? m zu n Beziehung

  1. #1
    zaibatsi ist offline Neuer Benutzer
    Registriert seit
    12.06.2010
    Beiträge
    2

    Standard Zwischentabelle erstellen? m zu n Beziehung

    Hallo,

    Gehe ich richtig vor?

    Ich erstelle mir 2 Tabellen. Diese Tabellen haben eine "m zu n" Beziehung.
    Somit erstelle ich eine Zwischentabelle mit 2 gleichnamigen Spalten, wie man sie in Tabelle A und B findet.

    Tabelle A
    A_ID : serial NOT NULL

    Tabelle B
    B_ID : serial NOT NULL

    Tabelle AB (zur Veranschaulichung noch ein AB_ vor der ID)
    AB_A_ID : integer (muss es hier auch NOT NULL sein? serial ja auch nicht oder?)
    AB_B_ID : integer (muss es hier auch NOT NULL sein? serial ja auch nicht oder?)

    Dann gehe ich auch Constraints, Fremdschlüssel hinzufügen und sage, dass die lokale Spalte AB_A_ID auf A_ID der Tabelle A referenziert werden soll.
    Das mache ich dann nochmal mit lokale Spalte AB_B_ID auf B_ID der Tabelle B.

    Das sind doch dann 2 Fremdschlüssel? Bei einer m zu n Beziehung kann man doch ein Primary Key aus 2 Foreign Keys zusammsetzen. Aber PGAdmin sagt mir immer, dass ich ein Primary Key erstellen soll...

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von zaibatsi Beitrag anzeigen
    AB_A_ID : integer (muss es hier auch NOT NULL sein? serial ja auch nicht oder?)
    AB_B_ID : integer (muss es hier auch NOT NULL sein? serial ja auch nicht oder?)
    Struktur stimmt, aber da beide IDs auf bereits existierende IDs aus den anderen Tabellen referenzieren ist serial vollkommen überflüssig bzw. sogar falsch (weil hier ja nie IDs generiert werden müssen)


    Dann gehe ich auch Constraints, Fremdschlüssel hinzufügen und sage, dass die lokale Spalte AB_A_ID auf A_ID der Tabelle A referenziert werden soll.
    Das mache ich dann nochmal mit lokale Spalte AB_B_ID auf B_ID der Tabelle B.
    Korrekt.


    Das sind doch dann 2 Fremdschlüssel?
    Ja und?


    Bei einer m zu n Beziehung kann man doch ein Primary Key aus 2 Foreign Keys zusammsetzen.
    Ich glaube Du verwechselst hier foreign key und primary key. Jede Spalte der Tabelle AB hat einen Foreign Key zu der entsprechenden anderen Tabelle. Beide spalten zusammen bilden den Primary Key der Tabelle AB.
    Der Primary Key setzt sich aus Spalten zusammen, nicht aus "foreign keys".
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  3. #3
    zaibatsi ist offline Neuer Benutzer
    Registriert seit
    12.06.2010
    Beiträge
    2

    Standard

    Also ist es richtig mit 2 Fremdschlüsseln zu arbeiten und ich kann die pgAdmin Meldung, dass ich doch noch einen Primary Key erstellen soll ignorieren?

  4. #4
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von zaibatsi Beitrag anzeigen
    Also ist es richtig mit 2 Fremdschlüsseln zu arbeiten
    Ja

    und ich kann die pgAdmin Meldung, dass ich doch noch einen Primary Key erstellen soll ignorieren?
    Nein.
    Wenn Du sicherstellen willst, dass eine Zuweisung nur einmal erfolgt, dann brauchst Du einen Primary Key über (AB_A_ID, AB_B_ID).
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum