Einfache beziehung, als Tabelle?

newuser

Benutzer
Beiträge
12
Hallo,


in diesem Datenbank Ausschnitt sieht man zwei Tabellen, wie würde man die Beziehung "Transport" in einer richtigen Datenbank darstellen?
Ist das nicht eine eigende Tabelle?

Quelle: staud.info
image035.jpg
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.731
Hallo,


in diesem Datenbank Ausschnitt sieht man zwei Tabellen, wie würde man die Beziehung "Transport" in einer richtigen Datenbank darstellen?
Ist das nicht eine eigende Tabelle?

Quelle: staud.info
image035.jpg

Ja.

Da ich keinen Unterschied zwischen Absender und Empfänger sehe:

Code:
test=# create table leute (id serial primary key, name text);
CREATE TABLE
Time: 104,763 ms
test=*# create table transport (id serial, von int references leute, nach int references leute, ts timestamptz);
CREATE TABLE
Time: 52,634 ms

So in der Art ... da können auch Empfänger mal was nettes an die Absender schicken. Grad jetzt zu Weihnachten...
 

newuser

Benutzer
Beiträge
12
von int references leute nach int references leute? was ist das?

würde man die tabelle transport so anlegen können:
Code:
CREATE TABLE TRANSPORT (
Zeitpunkt integer,
Absender_ID integer,
Empfänger_ID integer,
FOREIGN KEY (Absender_ID) REFERENCES ABSENDER (IdAbs),
FOREIGN KEY (Empfaenger_ID) REFERENCES EMPFAENGER (IdEmpf),

);

Zeitpunkt als integer, für das Beispiel egal.
 

akretschmer

Datenbank-Guru
Beiträge
9.731
von int references leute nach int references leute? was ist das?

Im prinzip das, was Du mit foreign key ... da machst. Die SQL-Spec sieht solche Inline-Definitionen vor und IMHO ist das auch besser verständlich, weil gleich lesbar. MySQL läßt das auch zu. Also vom im Sinne 'es kommt kein Fehler'. Es ignoriert es dann aber. TOLL!

würde man die tabelle transport so anlegen können:
Code:
CREATE TABLE TRANSPORT (
Zeitpunkt integer,
Absender_ID integer,
Empfänger_ID integer,
FOREIGN KEY (Absender_ID) REFERENCES ABSENDER (IdAbs),
FOREIGN KEY (Empfaenger_ID) REFERENCES EMPFAENGER (IdEmpf),

);

Zeitpunkt als integer, für das Beispiel egal.


Gewöhn Dir bitte ab, falsche Datentypen zu nehmen. Du hast schon den "Vorteil", daß MySQL kaum Datentypen hat. Die wenigen, die es hat, sollten aber genommen werden.

Andreas
 
Werbung:
Oben