Frage von tmideus98, 55

Wie bei SQL Tabellen verknüpfen?

Hallo,

Bin gerade an einem INV-Projekt am arbeiten. Es ist ein Projekt von der schule und ich muss mit SQL eine Datenbank für ein Fußball Turnier schreiben. Also ich habe jetzt 2 Tabellen gemacht einmal Spieler und einmal Mannschaft wie bekomme ich jetzt die Primärschlüssel der Spieler Tabelle einer Mannschaft aus der Mannschafttabelle zugeordnet?

Antwort
von TheQ86, 45

Du solltest zuerst die Beziehungen analysieren.

Ein Spieler ist Mitglied genau einer Mannschaft

Eine Mannschaft besteht aus mehreren Spielern.

Daraus folgt, dass deine Spieler-Tabelle einen sogenannten Fremdschlüssel auf die Mannschaftstabelle benötigt. Dieser Fremdschlüssel speichert den Primärschlüssel der Mannschaft

Du kannst in einem Spieler immer nur eine Mannschaft setzen. Aber über die Anzahl aller Spieler mit der selben Mannschafts-ID hast du auch die Beziehung welche Spieler alle in einer Mannschaft sind.

Kommentar von tmideus98 ,

Mit den dem Er und dem Relationenmodell bin ich bereits fertig, heißt Beziehungen sind geklärt. Was mir jetzt jedoch fehlt ist eine SQL Anweisung wie ich das ganze umgesetzt bekomme 😐

Kommentar von TheQ86 ,

Mit welchem Datenbanksystem arbeitest du denn? Grundsätzlich hast du 2 Möglichkeiten:

a) du machst es wie EightSix gesagt hat, dann brauchst du nur eine neue Spalte: http://www.w3schools.com/sql/sql\_alter.asp

b) Wenn du die volle Dröhnung willst (was ich Anfängern erst später empfehle) dann kannst du auf die Spalte auch einen sogenannten Foreign Key Constraint legen: http://www.w3schools.com/sql/sql\_foreignkey.asp.>

Der Unterschied ist, dass im letzteren Fall das Datenbanksystem selbst die referenzielle Integrität sichert. Soll heißen: Du kannst keinen Spieler einer nicht existierenden Mannschaft zuweisen, ohne Fehlermeldung. Du kannst (ohne sogenanntes Kaskadieren, was aber noch mal Stufe 3 dieses Themas wäre) keine Mannschaften löschen, die noch Spieler haben uws. Das heißt inkonsistente Daten werden von der Datenbank automatisch erkannt und nicht umgesetzt. Aber so viel mal als Ausblick. Würde dir raten mit EightSix zu fahren und mittels ALTER TABLE ADD <column> die spalte noch hinzuzufügen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten