# Fremdschlüssel



## Honkisponk (27. Dez 2009)

hi,

also ich hab hier folgendes problem. Es geht um ein Flugbuchungsprogramm für eine Fluggesellschaft. 
Ich hab die 2 Tabellen (in Mysql), Flugzeug und Kategorie

Meine Datenbank schaut so aus:
Flugzeug: FlugzeugID(PK), Typ, KategorieID(FK)
Kategorie: KategorieID(PK), anzahlEconomy, anzahlBusiness, anzahlFirst

Alles soweit ok, aber jetzt weis ich nicht, wie ich das in meinem Java Code realisiere, dass wenn ich eine 
Kategorie anlege, diese ID in mein neu Angelegtes Flugzeug reinkommt. 

hoffe das ist jetzt ein bischen verständlich ^^, hier mal mein java code


```
public void flugzeugAnlegen(Flugzeug flugzeug) {
		
		String query2 = "INSERT INTO Kategorie(AnzahlEconomy, AnzahlBusiness, AnzahlFirst)" +
		"VALUES('"+flugzeug.getKategorie().getAnzahlEconomy()+"', '"+flugzeug.getKategorie().getAnzahlBusiness()+"', '"+flugzeug.getKategorie().getAnzahlFirst()+"')";
		
		boolean bool2 = Datenbankanbindung.executequery(query2);
		if(bool2) {
			System.out.println("Kategorie wurde in die Datenbank gespeichert");
		}
		
		String query = "INSERT INTO Flugzeug(Typ, KategorieID)" +
		"VALUES('"+flugzeug.getTyp()+"', '"+query2+"')";
		
		boolean bool = Datenbankanbindung.executequery(query);
		if(bool) {
			System.out.println("Flugzeug wurde in die Datenbank gespeichert");
		}
	}
```

bin für jede hilfe sehr dankbar 

mfg
Honkisponk


----------



## XoxoL (27. Dez 2009)

hi,
ist das eine relationale datenbank? welche beziehung hast du den zwischen den Tabellen?


----------



## Honkisponk (27. Dez 2009)

hi,

also ich tippe mal darauf, dass des ne relationale db ist.
ist einfach mit dem MySQL Query browser erstellt

also in der Tabelle Flugzeug, gibt es ein Feld namens KategorieID
und das ist mein Fremdschlüssel, der mit der Tabelle Kategorie verbunden ist.


----------



## XoxoL (27. Dez 2009)

vieleicht reicht das


```
String query = "INSERT INTO Flugzeug(Typ, KategorieID)" +
        "VALUES('"+flugzeug.getTyp()+"', "+flugzeug.getKategorie().getKategorieID+")";
```

denn bei du musst ja in die Tabelle Flugzeug die KategorieID als Fremdschlüssel eintragen


----------



## Honkisponk (27. Dez 2009)

danke für deine tolle hilfe,

aber das kann doch garnicht funktionieren, weil ja die KategorieID zwar in der Datenbank existiert, aber in der Java Schicht nicht.


----------



## XoxoL (27. Dez 2009)

die KategorieID kannst du bestimmt aus der DB auslesen und dann in die Fleugzeug Tabelle eintragen


----------



## Honkisponk (28. Dez 2009)

also ich hab jetzt einfach die Kategorie (also die Anzahl der Sitzplätze) DB gelöscht und in Flugzeug reingetan. Bei genauer überlegung ist mir nämlich gekommen, dass das sowieso blöd war, diese Daten rauszunehmen und in eine eigene db zu speichern.

Bei einer anderen DB hat das dann mit dem Fremdschlüssel funktioniert

also danke für deine hilfe


----------

