Relationen bei table Erstellung

doowop

Benutzer
Beiträge
5
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
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.394
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.
 

doowop

Benutzer
Beiträge
5
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);
 

doowop

Benutzer
Beiträge
5
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
 
Werbung:

db.wizard

Aktiver Benutzer
Beiträge
43
Hallo,

Du musst das date maskieren :

select myField as "date" from myTable
/

Ich würde dies aber trotzdem nicht machen.

Gruss
 
Oben