Avatar billede stephanryer Nybegynder
25. august 2006 - 12:00 Der er 7 kommentarer og
1 løsning

Nedarving i relationelle database - best practise

Er det her den mest korrekte måde at implementere nedarving i en relationel database?:

PERSON
Person-id # | Navn | Adresse | Tlf.nr | Person-Type

PERSONTYPE
Persontype-id # | beskrivelse

LÆRER
Person-id # | Løn | antal timer | fag

ELEV
Person-id # | SU | Studielinie | gradueringsår


Person-id hænger sådan sammen, at en hvis en Elev har personid 9, så har Person det tilsvarende ID.

Men er dette en optimal model? Og er det den rigtige måde at gøre det på mht. Persontype (som fortæller hvilken tabel, subklassen befinder sig i)?

På forhånd tak
Avatar billede stephanryer Nybegynder
25. august 2006 - 12:12 #1
Jeg har fundet denne note om det, der benytter samme metode som jeg lige har opstillet.

Men hvad mht. når man skal gå fra en super-class til en sub-class? Er det den korrekte måde?

Eller skal man helt fjerne muligheden for at gå fra en super-class til en sub-class og så kun kunne gennemløbe alle subclasses og derigennem indhente deres fælles attributter?
Avatar billede stephanryer Nybegynder
25. august 2006 - 12:13 #2
Avatar billede arne_v Ekspert
25. august 2006 - 13:34 #3
du har jo fundet en kilde som beskriver de 3 klassiske mapninger

ingen af dem er perfekte

din skitserede løsning i spørgsmålet er "Using one data entity per class"

type feltet er en "extra" som man normlat ikke bruger

men har du behov for den, så er det vel helt fint

den gør at du på DB niveau kan teste på type af en person svarende til java
instanceof og C# is)

men har du overvejet din applikations side ?

rigtigt mange persisterings frameworks vil automatisk vælge mapping modellen !
Avatar billede stephanryer Nybegynder
25. august 2006 - 14:08 #4
og hvad er det for en model helt præcist?
Avatar billede arne_v Ekspert
26. august 2006 - 02:16 #5
du hentyder til "rigtigt mange persisterings frameworks vil automatisk vælge mapping modellen"

det kan vel principielt være alle 3 selvom det nok i 99.5% af tilfældene er
1 klasse = 1 tabel

pointen er at det er persisterings frameworket som bestemmer ikke en selv
Avatar billede arne_v Ekspert
30. september 2006 - 21:02 #6
kommet videre ?
Avatar billede stephanryer Nybegynder
30. september 2006 - 21:09 #7
ja, valgte EN fælles tabel og to tabeller til ekstra data. Læg et svar.
Avatar billede arne_v Ekspert
30. september 2006 - 21:21 #8
ok
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
Computerworld tilbyder specialiserede kurser i database-management

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