Oracle, database relaties

Pagina: 1
Acties:

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Ik ben bezig met het ontwerpen van een database.

Nu vroeg ik mij af op welke manier ik het volgende moet realiseren:

ik heb een personen en een kwaliteiten tabel.
De persoon-tabel bevat specifieke gegevens over de man/vrouw.
De kwaliteiten-tabel bevat alle kwaliteiten die een persoon kan hebben per afdeling.
Dan hebben we nog een tabel. De PersoonKwaliteiten-tabel, deze hebben we nodig om een meer op meer relatie te leggen tussen de Persoon en de Kwaliteiten tabel. Aangezien een persoon meerdere kwaliteiten binnen een afdeling heeft, en een kwaliteit tot meerdere personen kan toebehoren.

code:
1
2
3
4
5
6
7
8
Tabel Persoon:     Tabel PersoonKwaliteiten:    Tabel Kwaliteiten:
     # PersoonID       PersoonID                  # KwaliteitID
     ° Naam            KwaliteitID                ° Kwaliteitnaam
     ° Adres           Score
     ° Stad

relaties:
"Persoon" ------< "PersoonKwaliteiten" >------ "Kwaliteiten"


In de "PersoonKwaliteiten"-tabel zouden de PersoonID,KwaliteitID eigenlijk een samengestelde sleutel moeten zijn.
Is het dan mogelijk om een samengestelde sleutel van ForeignKeys te hebben, en deze te laten verwijzen naar verschillende tabellen?

Dus:

code:
1
2
CONSTRAINT PeKw_PersIDKwID_FK FOREIGN KEY(PersoonID,KwaliteitID)
    REFERENCES (Persoon(PersoonID),Kwaliteiten(KwaliteitID)))

maar, dit is dus niet juist..

Moet ik dan van PersoonID,KwaliteitID een PK maken? En hoe kan ik deze dan laten verwijzen naar de andere PK's?
Of moet ik een aparte PK bijmaken in de PersoonKwaliteiten-tabel?

[ Voor 24% gewijzigd door -FoX- op 26-02-2003 18:11 . Reden: layout ]


  • dvdhoek
  • Registratie: Februari 2002
  • Laatst online: 23-08 09:01
Inderdaad gewoon van PersoonID, KwaliteitID een PK maken en 2 foreign keys, 1 die vanaf PersoonID verwijst naar Persoon en 1 die vanaf KwaliteitID verwijst naar Kwaliteiten.
Een samengestelde foreign key kan niet naar twee verschillende tabellen wijzen, alleen naar een samengesteld primary key van een tabel.

[ Voor 29% gewijzigd door dvdhoek op 26-02-2003 18:19 ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Ja, zo had ik het ook wel gedacht te doen..

Maar misschien dat het nog op een andere (of betere) manier kon gedaan worden.
In ieder geval bedankt voor je reactie!