_n4p_ Geschrieben 29. April 2010 Teilen Geschrieben 29. April 2010 jetzt gibts du orte noch eine ID spalte als PK, dann kannst du in standort und zielort diese ID referenzieren hier dann FK. dann sollte das passen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 29. April 2010 Autor Teilen Geschrieben 29. April 2010 ok danke also bei orte schreib ich einfoch noch ID und was soll ich jetzt als FK nehmen? Start und zielort ist das der fremdschlüssel odrer? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 29. April 2010 Autor Teilen Geschrieben 29. April 2010 so hier mal meine create table CREATE TABLE wanderung ( *ID_Wanderung NUMBER, Beschreibung CHAR, Dauer TIMESPAN, ID_Start NUMBER, ID_Ziel NUMBER, PRIMARY KEY (ID_Wanderung), FOREIGN KEY (ID_Start) REFERENCES ID (ID_Start) FOREIGN KEY (ID_Ziel) REFERENCES ID (ID_Ziel)); CREATE TABLE ort ( ID_Ort NUMBER, Name CHAR, Postleitzahl CHAR, Höhe NUMBER, PRIMARY KEY (ID_Ort)); der müsste eigentlich passen oder`? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 29. April 2010 Teilen Geschrieben 29. April 2010 nein das mit den FKs ist scheinbar nicht ganz angekommen. der FK referenziert eine spalte in einer ANDEREN tabelle. vielleicht hilft dir das beispiel beim verstehen: SQL FOREIGN KEY Constraint Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 29. April 2010 Autor Teilen Geschrieben 29. April 2010 (bearbeitet) hmmm gut also so müsste es stimmen CREATE TABLE wanderung ( *ID_Wanderung NUMBER, Beschreibung CHAR, Dauer TIMESPAN, ID_Start NUMBER, ID_Ziel NUMBER, PRIMARY KEY (ID_Wanderung), FOREIGN KEY (ID_Start) REFERENCES wanderung (ID_Start) FOREIGN KEY (ID_Ziel) REFERENCES wanderung (ID_Ziel)); CREATE TABLE ort ( ID_Ort NUMBER, Name CHAR, Postleitzahl CHAR, Höhe NUMBER, PRIMARY KEY (ID_Ort)); hab bei den FK die ID weckgemacht und wanderung geschrieben, weil die sich ja auf die tabelle wanderung beziehen. Bearbeitet 29. April 2010 von Schemo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 29. April 2010 Teilen Geschrieben 29. April 2010 sachemal schreib ich verschwommen? ich sagte die FKs beziehen sich auf eine andere tabelle. was machst du? du legst in der tabelle wanderung FKs an die die tabelle wanderung referenzieren ... von der tabelle wanderung referenzierst du aber die tabelle ort, weil ID_Start und ID_Ziel einen eintrag in der tabelle Ort brauchen. anders gesagt, ID_Start einer wanderung entspricht ID_Ort eines Ortes. für ID_Ziel gilt das gleiche. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 29. April 2010 Autor Teilen Geschrieben 29. April 2010 (bearbeitet) sorry,aber ich verstehe is halt nicht so gut=/ so stimmt es oder? CREATE TABLE wanderung ( *ID_Wanderung NUMBER, Beschreibung CHAR, Dauer TIMESPAN, ID_Start NUMBER, ID_Ziel NUMBER, PRIMARY KEY (ID_Wanderung); FOREIGN KEY (ID_Start) REFERENCES ort (ID_Ort) FOREIGN KEY (ID_Ziel) REFERENCES ort (ID_Ort)); CREATE TABLE ort ( ID_Ort NUMBER, Name CHAR, Postleitzahl CHAR, Höhe NUMBER, PRIMARY KEY (ID_Ort)); Bearbeitet 29. April 2010 von Schemo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 30. April 2010 Autor Teilen Geschrieben 30. April 2010 ist immer noch nicht richtig? hab ich recht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 30. April 2010 Teilen Geschrieben 30. April 2010 hat doch keiner gemeckert ^^ meiner meinung nach passt das Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 30. April 2010 Autor Teilen Geschrieben 30. April 2010 super=) so dann habe ich noch den create table von der anderen aufgabe mit den wölfen CREATE TABLE rudel ( wolf_ID NUMBER, wolfname VARCHAR(15), wolfalter INTEGER, rudelname VARCHAR(15), mitgliederboss SMALLINT NOT NULL, PRIMARY KEY (wolfname)); CREATE TABLE mitglieder ( mitgliederboss SMALLINT, wolfname VARCHAR(15), boss SMALLINT, PRIMARY KEY (mitgliederboss), FOREIGN KEY (wolfname) REFERENCES rudel (wolfname), FOREIGN KEY (boss) REFERENCES mitglieder (boss)); hier stimmt etas bei disen FK nicht: FOREIGN KEY (boss) REFERENCES mitglieder (boss)); nur weis ich nicht was. kannst du mir einen tip geben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 30. April 2010 Autor Teilen Geschrieben 30. April 2010 habs mir jetzt doch anders überlegt=) möchte das so machen: CREATE TABLE rudel ( wolfname VARCHAR(15), wolfalter INTEGER, rudelname VARCHAR(15), mitgliederboss SMALLINT NOT NULL, PRIMARY KEY (wolfname)); CREATE TABLE mitglieder ( mitgliederboss SMALLINT, wolfname VARCHAR(15), boss SMALLINT, PRIMARY KEY (mitgliederboss), FOREIGN KEY (wolfname) REFERENCES rudel (mitgliederboss), FOREIGN KEY (boss) REFERENCES mitglieder (boss)); stimmt das so ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 30. April 2010 Teilen Geschrieben 30. April 2010 nein. 1) du referenzierst WIEDER die spalte der gleichen tabelle die du als FK festlegst, nochmal, das geht nicht und ergibt auch keinen Sinn. 2) die gewählten attribute sind völlig unlogisch, die PKs sind blödsinn. langsam frag ich mich ob du das was wir hier schreiben entweder nicht ließt oder es absolut nicht verstehen willst. mal am beispiel: ein wolfrudel besteht aus mehreren wölfen, genauer einem aplhawolf mit dessen untergeordneten wölfen. - welche rolle spielt hier deiner meinung nach das alter und der name eines wolfes? man nehme also für die tabelle rudel folgende attribute: * rudelID * rudelName * alphaTierId ein wolf hat einen namen, ein alter und einen boss * wolfID * alter * name * boss durch seinen boss ist er eindeutig direkt under indirekt auch einem rudel zuzuordnen um die suche später etwas zu vereinfachen, kann man die rudelID aber auch mit als attribut des wolfes ansehen. die untergeordneten wölfe finde ich indem ich alle wölfe suche die einen bestimmten boss haben. boss refernziert hier die wolfId nicht boss. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schemo Geschrieben 30. April 2010 Autor Teilen Geschrieben 30. April 2010 also so CREATE TABLE rudel ( rudelID VARCHAR(15), rudelname VARCHAR(15), alphaTierID SMALLINT NOT NULL, PRIMARY KEY (rudelID)); CREATE TABLE mitglieder ( wolfID SMALLINT, name VARCHAR(15), alter SMALLINT NOT NULL, boss VARCHAR (15), PRIMARY KEY (wolfID), FOREIGN KEY (rudelID) REFERENCES mitglieder (boss), FOREIGN KEY (wolfID) REFERENCES rudel (alphaTierID)); sry, aber ich denke das ich es immer noch nicht verstehe =/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 30. April 2010 Teilen Geschrieben 30. April 2010 FOREIGN KEY (rudelID) REFERENCES mitglieder (boss), nein rudelID gibts doch in der tabelle gar nicht der FK befindet sich in der aktuellen tabelle bezieht sich aber auf eine andere spalte FOREIGN KEY (boss) REFERENCES mitglieder (wolfId) FOREIGN KEY (wolfID) REFERENCES rudel (alphaTierID)); nein damit würdest du festlegen das jeder wolf als alphatier in der rudel tabelle existieren muss. das müsste genau andersrum sein, und in der rudeltabelle, da ja jedes alphatier in der rudel tabelle ein existierender wolf sein muss. FOREIGN KEY (alphaTierID) REFERENCES mitglieder (wolfId) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.