Avatar billede aslan Nybegynder
16. maj 2002 - 19:08 Der er 6 kommentarer og
1 løsning

oprette specialisering og aggregering i db

Efter en omgang OOAD og diverse java-kodninger er jeg kommet til at skulle oprette mine tabeller i en interbase database. Men jeg er ikke helt sikker på hvordan mine tabeller skal stå i forhold til hinanden når det gælder specialisering og aggregering? Jeg har f.eks en gæst der bliver specialiseret i en privatGæst og erhvervsGæst, og en værelseType der bliver aggregeret i værelser?
Avatar billede soreno Praktikant
16. maj 2002 - 19:25 #1
Én til én associering/aggregering: Fremmednøgle i én af tabellerne
Én til mange associering/aggregering: Fremmednøgle i mange-tabellen
Mange til mange associering/aggregering: Ekstra tabel med primærnøgle sammensat af fremmednøgle fra hver af mange-tabellerne

arv:
Tabel for hver klasse i arve-strukturen. Én-til-én relation mellem ’sub’- og ’super’-tabel.
Avatar billede aslan Nybegynder
16. maj 2002 - 22:39 #2
Jeg skal lige have forklaret arv?

gæst har attributterne : nr,navn,adresse,tlf,antalreservation
erhvervsGæst : firma,cvr,rabat
privatGæst : idNr

Hvordan vil min tabel så se ud ? gerne uddybet
Avatar billede soreno Praktikant
17. maj 2002 - 10:45 #3
gæst:
super_id (nøgle)
nr
navn
addresse
telefon
antalReservation

erhvervsgæst:
id (nøgle)
super_id //en til en relation til gæst
firma
cvr
rabat

privatGæst:
id (nøgle)
super_id //en til en relation til gæst
idNr (måske det samme som id ??)
Avatar billede aslan Nybegynder
17. maj 2002 - 14:54 #4
takker det er værd at lege med:)
Avatar billede soreno Praktikant
17. maj 2002 - 15:06 #5
det kan forresten også gøres ved at samle alle attributter i en tabel, men det bliver hurtigt uoverskueligt + svært at udvide.
Avatar billede aslan Nybegynder
17. maj 2002 - 15:25 #6
Kan du egentlig give et bud på hvordan sql queryen ville se ud til specialiseringen privatGæst f.eks?
Avatar billede soreno Praktikant
18. maj 2002 - 16:53 #7
du selecter:
nr
navn
addresse
telefon
antalReservation
fra gæst, og laver en join til privatgæst og selecter:
idNr (måske det samme som id ??)
fra privatgæst

noget ala:
select gæst.nr, gæst.navn, gæst.addresse, gæst.telefon, gæst.antalReservation, privatGæst.idNr
where
gæst.super_id = privatgæst.super_id
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester