# "IST-EIN" Beziehung in SQL realisieren?



## T_Da_Man (12. Apr 2005)

Hallo,

ich muss eine Datenbank Modellieren. Jetzt hab ich das Problem mit einer "Ist-ein-Beziehung".
Und zwar hab ich eine Tabelle Kunde und eine Tabelle Lieferant.
Beides sind Spezifikationen aus der Tabelle Person.

Hier meine Tabelle:

Person: 
PersonID(Primary Key)
            Name
            Adresse
            Email-Adresse

Brauche ich nun für Kunde einen extra Primarykey, oder auch deie PersonID?
------------------
Weiss jetzt nicht, ob alles von der Syntax her 100%ig passt...    
Möglichkeit 1:

Kunde: 
KundeID (Primary Key)
           Kontostand
           PersonID (Fremdschlüssel)

Möglichkeit 2: 

Kunde: PersonID (Primary Key)
           Kontostand
----------------
So, muss ich jetzt PersonID als Fremdschlüssel in meine Tabelle "Kunde" mit reinnehmen?
--> Wie realisiere ich diese Tabellen? 

mit: 


```
CREATE TABLE Kunde (
    KundeID           integer primary Key,
    Kontostand       double,
    PersonID          foreign Key references Person(PersonID)
);
```

oder mit:


```
CREATE TABLE Kunde (
    PersonID          integer primary Key,
    Kontostand       double,
);
```

Oder wird das anders Realisiert?

D.H. meine Frage ist:

Wie realisiere ich eine IST-EIN-BEZIEHUNG in den Create-Table Statements? Ich habe damit ein Verständnisproblem, ich hoffe mir kann jemand helfen.

Danke!

Gruß Thorsten[/code]


----------



## stev.glasow (12. Apr 2005)

IST-EIN-BEZIEHUNG hat was mit Vererbung zu tun, arbeitest du mit einer Objekt Orientierten Datenbank?


----------



## T_Da_Man (12. Apr 2005)

hmm also wir sollen des ganze mit dem Oracle 10 Realisieren, und es soll eine Relationale Datenbank sein, mehr weiss ich net...


----------



## stev.glasow (12. Apr 2005)

Denn die Variante mit "foreign key references"


----------



## T_Da_Man (12. Apr 2005)

Jo, is n fremdschlüssel, kein plan, nennt man das Objektorientierte DB?


----------



## stev.glasow (12. Apr 2005)

Nö


----------



## T_Da_Man (12. Apr 2005)

hast n link, wo es ne gute beschreibung gibt, was ne Objektorientierte DB is? 
Dann kann ichs dir sagen ob es eine sein soll    

Hab schon was bei wikipedia.org gefunden, moooment


----------



## T_Da_Man (12. Apr 2005)

stevg hat gesagt.:
			
		

> Nö



is wohl kein OODBS...


----------



## stev.glasow (12. Apr 2005)

Dieses references  sagt ja nur aus das die spalte y eine beziehung zu spalte x hat.


----------



## T_Da_Man (12. Apr 2005)

Ja, aber für die IST-EIN-Beziehung brauch ich des nicht oder?


----------



## stev.glasow (12. Apr 2005)

Ich würd schon sagen.


----------



## T_Da_Man (12. Apr 2005)

Also ich brauch, um die Ist-Ein-Beziehung zu realisieren, einen primary key, und als fremdschlüssel den primarykey der Vererbenden Tabelle?


----------



## stev.glasow (12. Apr 2005)

jo, es geht auch ohne, aber so ist es sauberer, da die einträge von kunde ja abhängig von person sind.
das preferences sichert dir halt nur dass es nicht möglich ist eine person zu löschen auf die ein kunde "zeigt"


----------



## T_Da_Man (12. Apr 2005)

achso okay... danke mal....


----------

