Zum Inhalt springen

Datenmodellierung


Schemo

Empfohlene Beiträge

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`?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Schemo
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Schemo
Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 =/

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...