Avatar billede debugger Nybegynder
21. november 2001 - 10:11 Der er 4 kommentarer

Opbygning af database

Jeg har en vareliste, der skal fungere online, og derfor smides ind en database (Access). Problemet er den måde varelisten er opdelt på.

Der er tale om nogle varer, med forskellige attributter (varenummer, navn, pris, osv..) Disse varer er så delt ind i varegrupper. Hertil er jeg helt med. Problemet er så, at varene også er delt ind i størrelser, som er universelle ned gennem grupperne. Det er så her jeg mister det kølige overblik.

Lad mig prøve at illustrere:

Størrelse:      2x4 m    2x5 m    3x4 m    4x4 m

Varegruppe: Træplader

plade, lys      100,-    120,-    140,-    160,-
plade, mørk      110,-    130,-    150,-    170,-
monteringsæt    30,-    50,-    50,-    60,-

Varegruppe: Platicplader

plade, tynd      190,-    210,-    240,-    280,-
plade, kraftig  300,-    320,-    370,-    410,-
monteringsæt    60,-    90,-    90,-    110,-


hver vare (representeret ovenfor ved en pris) har sit unikke varenummer.

Jeg er med på, at jeg kan dele varene op i kategrier ved at oprette en \"kategori\" tabel og en \"varer\" tabel i min database, og oprette en relation. Men hvad gør jeg, når varene deles op efter to \"egenskaber\" og ikke en enkelt?

Jeg bevæger mig lige nu i retning af et opbygning med \"under under\" kategorier, men synes det virker uholdbart.

Endnu en dårlig illustration (skulle forestille kategori/vare strukturen):



| |Dette niveau repræsenterer posterne i tabellen \"Kategorier\"
|  |Dette niveu repræsenterer posterne i tabellen \"Underkategorier\"
|    |Dette niveu repæresenterer postere i tabellen \"varer\"

| Træplader
|  2x4
|    plade, lys
|    plade, mørk
|    monteringssæt
|  2x5
|    plade, lys
|    plade, mørk
|    monteringssæt
|  3x4
|    plade, lys
|    plade, mørk
|    monteringssæt
|  4x4
|    Plade, lys
|    Plade, mørk
|    Monteringssæt
| Plasticplader
|  2x4
|    Plade, tynd
|    Plade, kraftig
|    Monteringssæt
|  2x5
|    Plade, tynd
|    Plade, kraftig
|    Monteringssæt
|  3x4
|    Plade, tynd
|    Plade, kraftig
|    Monteringssæt
|  4x4
|    Plade, tynd
|    Plade, kraftig
|    Monteringssæt


... Men med dette ville man opnå mange dubletter i tabellen \"underkategorier\", og utrolig mange dubletter i tabellen \"varer\")

\"Dubletter\" skal her forståes såddan, at mange kategorier får ens navne (selvom de er unikke kategorier), og mange varer får ens navne (selvom de har unikt varenummer).

Jeg har tænkt på, at man kunne opbygge det traditionelt i kategorier, og lave tabellen vare se ud som følgende:

|    Vare_ID    Gruppe_ID    Vare_Navn      Pris2x4    Pris2x5    Pris3x4    Pris4x4
|
|    1          1            Plade, lys    100,-      120,-    140,-      160,-
|    2          1            Plade, mørk    110,-      130,-    150,-      170,-
|    3          1            Monteringsæt  30,-      50,-      50,-      60,-
|    4          2            plade, tynd    190,-      210,-    240,-      280,-
|    5          2            plade, kraftig 300,-      320,-    370,-      410,-
|    6          2            monteringsæt  60,-      90,-      90,-      110,-


... Men så ville det ikke umiddelbart være muligt at tilføje/slette/redigere størrelserne, og man \"fryser\" dermed en af de kriterier, som varene er delt op efter.

... Jeg er nu der, hvor jeg har stirret mig blind på problemstillingen, og håber derfor på et skub i den rigtige retning.


Det korte af det lange: Hvorddan deler jeg en bunke varer op efter to typer kategorier (og ikke efter en type kategorier, som normalt) i en relationel database?
Avatar billede nute Nybegynder
21. november 2001 - 10:20 #1
jeg ville ha laget 3 tabeller:

****************
størrelse tabell
****************
ID
størrelse

eks:
ID_|_Størrelse___
1 .|.2x4m
2 .|.2x5m
osv

*****************
varegruppe tabell
*****************
ID
gruppe

eks:
ID_|_Gruppe___
1 .|_Treplate
2 .|_Plastikk

***********
type tabell
***********
ID
type

eks:
ID_|_Gruppe___
1 .|_Plade, lys
2 .|_Plade, mørk

***********
vare tabell
***********
ID
gruppe
størrelse
type
pris

eks:
ID_|_gruppe_|_størrelse_|_type_|_pris
1 .|_1......|_1.........|_1....|_240,-
1 .|_1......|_1.........|_2....|_250,-

i den siste tabel er \'gruppe\', \'størrelse\' og \'type\' fremmednøkler i de tabellene med samme navn

/nute
Avatar billede debugger Nybegynder
21. november 2001 - 10:20 #2
... hvis I gør jer den ulejlighed, at copy/paste mit indlæg in i en text-editor, med en skrifttype som \"fixedys\" (kan ikke huske hvad den genrelle betegnelse for disse fonte er), vil I muligvis bedre kunne overskue mine \"tabeller\".
Avatar billede debugger Nybegynder
21. november 2001 - 10:22 #3
nute: kigger på det.. ser umiddelbart ret fornuftigt ud.
Avatar billede debugger Nybegynder
22. januar 2002 - 15:07 #4
nute: du får lige nogle point, hvis du smider et svar.

Tak for hjælpen :o)
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