Avatar billede ds-zim Nybegynder
19. februar 2001 - 13:39 Der er 11 kommentarer og
1 løsning

Forståelses Problem ...

Jeg vil gerne reducere redundansen i en tabel, der, for hver post, lagrer information
på 20 forskellige skadetyper! Grunden til denne udformning er at med 1 forespørgsel
kan samtlige poster hentes.
Det er da ikke muligt at fabrikere en forespørgsel som kan hente poster fra flere
tabeller, right ?

Umiddelbart står mit valg imellem;
1. En særdeles redundant tabel og en nem oversigt
2. En optimeret struktur og en oversigt for hver enkelt tabel.

Har jeg fat i den lange ende ?

Cheers, Zim
Avatar billede hojben Novice
19. februar 2001 - 13:41 #1
du kan da godt oprette en forespørgsel som henter data fra flere tabeller. kender du til relationer?
Avatar billede ds-zim Nybegynder
19. februar 2001 - 13:47 #2
Ja, jeg kender til relationer. Jeg må have forklaret mig ret tåget..
Ved at tilføje flere tabeller, får jeg mulighed for at lave opslag
på forskellige felter. Ergo, posten bliver længere/indeholder mere info.
---
Det jeg skal bruge er en forespørgsel, der viser poster, defineret ved X felter
(hvor felterne forefindes i samtlige tabeller) fra flere forskellige tabeller.
Avatar billede ricky Nybegynder
19. februar 2001 - 13:53 #3
jeg ved ikke om jeg har forstået det korrekt - men du kan da godt hente de samme feltnavne ind i én forespørgelse:
felt1:[tabel1].[navn]
felt2:[tabel2].[navn]
felt3:[tabel3].[navn]
Avatar billede ds-zim Nybegynder
19. februar 2001 - 14:00 #4
Yep! Men som nævnt, er der tale om 20+ mindre tabeller !
Postlængden bliver hurtigt en dårlig vittighed (20+*3),
og mange felter i hver post vil være tomme! Ergo vil
redundansen være flyttet fra tabellen & ind i oversigten!
Jeg havde håbet på en postlængde på 3 felter (de afgørende nøgler)
og 1 forespørgsel kunne vise samtlige poster.

Er mit problem blevet det mindste klarere ?
Avatar billede wmkurt Nybegynder
20. februar 2001 - 01:27 #5
Jeg tror nærmere at det er dit database-design (Er-Diagram) der er noget galt med. Prøv at overveje om ikke nogle af de mindre tabeller burde samles.
Avatar billede ds-zim Nybegynder
20. februar 2001 - 10:22 #6
-> WMKurt

I øjeblikket overvejer jeg hvordan jeg får opsplittet en tabel med en postlængde på 168 felter,
redundansmedian på en 70%. Jeg har lavet et layout, der bare spiller men jeg vil gerne kunne
vise poster fra de mindre tabeller i 1(een) forespørgsel. Umiddelbart er jeg af den opfattelse
at det ikke er muligt.
Avatar billede moses Praktikant
20. februar 2001 - 12:03 #7
Meget mystisk skrevet ...

Er det her, jeg skulle kunne hjælpe dig ds-zim ??
Avatar billede ds-zim Nybegynder
20. februar 2001 - 12:25 #8
Tjae, jeg var bange for at ingen kunne rumme min snørklede forklaring.
Prøver igen når jeg engang kommer hjem omkring 17:00-18:00

Zim
Avatar billede moses Praktikant
20. februar 2001 - 13:38 #9
Hvis du har en tabel med sagsnummerID i et Long integer felt, en beskrivelse af de enkelte sager i et tekstfelt og en angivelse af skadetype i et long integer felt

OG

En tabel med SkadetypeID i et Long Integer felt og Skadetypebeskrivelse i et tekstfelt

SÅ

Vil du kunne lave en relation imellem Skadetype feltet i den første tabel og SkadetypeID feltet i den anden tabel.
Du kan i første tabel desuden bestemme (Lookup), hvilke valg, der er tilladt i feltet Skadetype i første tabel. Du kan nemlig angive, at det skal være en af de muligheder, som er angivet i den anden tabel.
Dernæst vil du kunne lave en query, med begge tabeller, hvor du tager alle felterne. Glem lige kriterier for eksemplets skyld.
Det vil resultere i et stort udtræk, hvor du har alle skader med beskrivelse af skaden og skadetypen i tekst.

Hvis du vil lægge flere skadetyper ind, så gør du det i nr. 2 tabel (med SkadetypeID).

Det kalder man at lægge Databasen på normalform. Det består af mange flere faser, men dette er en af dem.
I princippet skal det hele forstås på den måde, at man finder alle de \"ting\" eller objekter, som der tales om i databasen, hvorefter man finder alle de egenskaber \"tingene\" har.

Eks.
\"Skadesanmeldelse\" er en \"ting\"
\"Beskrivelse\" er en egenskab for skadesanmeldelsen
\"Anmeldt klokken\" er en egenskab for skadesanmeldelsen
\"Anmeldt af hvem\" er en egenskab for skadesanmeldelsen

\"Skadetype\" er en \"ting\"
\"Beskrivelse\" er en egenskab for Skadetypen

osv.

OG

En ting vil som regel betyde, at du skal oprette en tabel. Imens en egenskab som regel betyder, at du skal lave et felt i den tabel.

Tabel: Skadesanmeldelser
Felt: Beskrivelse
Felt: Anmeldt klokken
Felt: Anmeldt af hvem

Tabel: Skadetyper
Felt: Beskrivelse

I dit eget eksempel har du netop blandet de to tabeller, så du får masser af tomme felter. Det er spild og det vil til sin tid kunne begrænse dine muligheder for at udvidde eller lave om undervejs.

Og så lidt råvarer:

Meget korte huskesætninger:
http://www.hha.dk/ifi/INFORMATIK/FORELAESNINGER/UGE4/tsld013.htm

Beskrivelser af fænomenet:
http://www.edb-centret.dk/modul10.htm
http://www.vejlets.dk/fjcentret/opgaver/pcbruger/modul11/0911.htm
http://www.uv.tietgen.dk/edb/laerer/bjla/date1000.htm
Avatar billede moses Praktikant
20. februar 2001 - 13:45 #10
Et enkelt felt mangler selvfølgelig lige i mit eksempel:

Tabel: Skadesanmeldelser
Felt: Beskrivelse
Felt: Anmeldt klokken
Felt: Anmeldt af hvem
Felt: Skadetype

Tabel: Skadetyper
Felt: Beskrivelse

For en ordens skyld:
Feltet Skadetype i tabellen skadesanmeldelser er KUN nøglen til tabellen Skadetype (feltet skadetypeID).
Der tales om det i henvisningerne til internettet på følgende måde:
Felterne i en tabel må kun være afhængig af én nøgle og samme nøgle. Beskrivelsen af skadetypen er aldeles ikke afhængig af skadesanmeldelsen, men udelukkende af skadetypen, så derfor skal den ligge i den anden tabel med skadetypen.

Kryptisk - måske fordi det skulle gå lidt stærkt, men læsestoffet er meget anvendeligt.
Avatar billede ds-zim Nybegynder
21. februar 2001 - 12:52 #11
K, mente jeg var på sporet men ville have det bekræftiget.
Er før blevet overrasket over hvor mange måder man kan komme
rundt om sådanne designproblemer
Avatar billede moses Praktikant
21. februar 2001 - 13:08 #12
:-) SPASIBA  ;-)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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