Avatar billede kube Nybegynder
09. august 2005 - 09:15 Der er 4 kommentarer og
1 løsning

hvad er fordelen ved en-til-en relationer?

hej,
jeg sidder med nogle database, der skal slåes sammen til en samlet database (dette kræver en del tilpasning)..

Derfor sidder jeg og ser på de enkelte database diagrammer (E/R).

Hvorfor har man valgt at lave en-til-en relationer, frem for at lægge data i samme tabel. Hvis det overholder normalformerne vil det vel være mest teoretisk korrekt at putte alt i en tabel, eller hvad?

Årsagen til at der kan være en-til-en relationer, ser jeg at ved at oprette en ny tabel, i stedet for "alter table" og tilføje kolonner, så undgås at der skal laves for meget om i eksisterende applikationer, der benytter databasen. Men er der andre fordele?

Men jeg designer nyt system og skal ikke tage højde for såkaldte "legacy systems", hvilken struktur er best til hvilke situationer?

Forslag om artikler eller lign. er velkommen..

Tak
Avatar billede teepee Nybegynder
09. august 2005 - 09:22 #1
Normalt skal 1-1 ikke bruges, men du kan have situationer, hvor du ønsker at fysisk placere forskellige data på forkellige harddiske el. lign. Desuden er nogle kolonnetyper kun tilladt en enkelt gang for en tabel, så dér må bruges flere tabeller selvom data egentligt hører sammen. Men 1-1 har typisk noget med den fysiske model og ikke den logiske model at gøre.
Avatar billede arne_v Ekspert
09. august 2005 - 10:02 #2
Jeg har et bedre råd til at undgå at skulle ændr ei applikationer end at bruge 1:1,
nemlig altid at angive alle felter eksplicit i både SELECT og INSERT - så vil
applikationen ikke skulle ændres
Avatar billede kube Nybegynder
09. august 2005 - 10:34 #3
ja, men hvis der er foretaget performance tuning for brugen af en jdbc driver, kan det være problematisk. getString(1) er jo hurtigere en getString("kolonne navn")
Avatar billede kube Nybegynder
09. august 2005 - 10:34 #4
men ville egentlig bare høre hvorfor man gjorde det! Jeg kunne nemlig ikke selv finde på det sådan uden videre...
Avatar billede arne_v Ekspert
09. august 2005 - 10:40 #5
hvis du bruger

SELECT f1,f2,f3,f4 FROM t

fremfor

SELECT * FROM t

så kan du netop bruge rs.getXxxx(1) uanset om du ændrer på tabel struktur
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