1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Relationen bei table Erstellung

Dieses Thema im Forum "Oracle" wurde erstellt von doowop, 1 November 2011.

  1. doowop

    doowop Benutzer

    Hallo, ich erstelle eine kleine Datenbank und habe mit 2 Relationen ein Problem.
    Es geht um 2 Entitäten:
    (Customer=Name der Entität)
    company_ID (PK) 1...1 (zu company_ID)
    company_name
    address
    telephone
    maincontact (FK) 0...1 (zu caller_ID)

    (Caller)
    1..1 caller_ID (PK)
    1...* company_ID (FK)
    first_name
    last_name

    Eine Company hat einen oder mehrere Caller. Sowie jede Company hat einen hauptcaller (maincontact), aber nicht jeder caller ist ein maincontact.
    Stimmen dazu die Relationen und Primary Key und Foreign Key? Wenn das stimmt dann habe ich nämlich bei der table Erstellung Probleme, weil die beiden table gegenseitig auf sich verweisen.

    danke für Antworten
     
  2. ukulele

    ukulele Datenbank-Guru

    Das scheint korrekt ausser das du eigentlich eine n:m Beziehung zwischen Caller und Customer hast (wenn ich das richtig verstehe) da ein Caller n Customer betreuuen kann und ein Customer n Caller haben kann.

    Bei der Tabellen Erstellung must du ggf. die Tabelle erst anlegen und mit ALTER TABLE später die Einschränkung hinzufügen wenn beide Tabellen bereits existieren.
     
  3. doowop

    doowop Benutzer

    danke. customer ist eigentlich eine company, das hätte ich hier vielleicht als table namen schreiben sollen. eine company hat mehrere caller, das müsste dann so stimmen.

    bei der table erstellung hatte ich genau das problem was du beschrieben hattest. falls es noch jemand anders benötigt:

    create table customer(
    company_ID NUMBER(20) PRIMARY KEY,
    company_name VARCHAR2(100),
    address VARCHAR2(100),
    telephone NUMBER(30),
    maincontact NUMBER(10)
    );

    create table caller(
    caller_ID NUMBER(20) PRIMARY KEY,
    company_ID NUMBER(20) REFERENCES customer(company_ID),
    first_name VARCHAR2(100),
    last_name VARCHAR2(100)
    );

    alter table customer add constraint customerrefcaller_ID foreign key(maincontact) references caller(caller_ID);
     
  4. doowop

    doowop Benutzer

    noch eine Frage. ist es möglich Keywords in meiner Datenbank als Text zu verwenden. wenn ich z.B. eine Select Abfrage mache und möchte eine Spalte Date benennen. geht das? wenn ich einfach nur: select xxx as Date schreibe, ist die fehlermeldung:



    ORA-00923: FROM keyword not found where expected
     
  5. db.wizard

    db.wizard Aktiver Benutzer

    Hallo,

    Du musst das date maskieren :

    select myField as "date" from myTable
    /

    Ich würde dies aber trotzdem nicht machen.

    Gruss
     
    Walter gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen