Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Einfache beziehung, als Tabelle?

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von newuser, 14 Dezember 2013.

  1. newuser

    newuser Benutzer

    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[​IMG]
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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...
     
  3. newuser

    newuser Benutzer

    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.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    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!


    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
     
  5. newuser

    newuser Benutzer

    Ja, stimmt. Richtige Datentypen helfen.
    Danke für die Antworten
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden