24. januar 2005 - 10:31Der er
27 kommentarer og 1 løsning
Hjælp til design af database til dynamisk produktkatalog
Jeg skal til at lave et meget dynamisk produktkatalog. Produktkataloget er ikke stilet til en bestemt branche, men skal være så fleksibel at den kan bruges af mange forskellige brancher.
Min idé er følgende:
Jeg har bestemt at produkterne bliver inddelt under en hovedkategori (eks. Hardware), en underkategori (eks. Harddisk) og så selve produktet (Maxtor…). Kan det ikke dække over det meste?
Det skal være muligt at indtaste data omkring hvert produkt, da data for de forskellige produkter i en underkategori sjældent er ens skal dette også være dynamisk. Dvs. at for hver underkategori skal man vælge hvilke felter der høre til produkterne F.eks. under harddiske skal der opgives interface, størrelse, hastighed osv. og under printere skal der opgives type, sider i minuttet, farve/ sort-hvid osv.
Det skal også være muligt at oprette disse ”datafelter”, Dvs. at man kan oprette interface, størrelse, hastighed, type, sider i minuttet, farve/sort-hvid osv.
Er der nogle forslag til hvordan en sådan database kan skrues sammen, og hvad nu hvis der evt skulle være mulighed for at lave den i forskellige sprog?
Ja du må undskylde at jeg ikke har fået kigget så meget på dit løsningsforslag!
Jeg har lige et par spørgsmål til dit forslag.
Hvilken type skal jeg lave feltet "Attributværdi" i tabellen "beskrivelse", den skal jo både kunne indeholde en kort tekst og en meget lang tekst (ca. fra 0 - 1000 tegn). Er det et problem at lave den en varchar(1000), selv om hovedeparten af de data der skal i den måske kun fylder 20 tegn?
Har du lavet nogle løsninger der ligner denne database opbygning? Er der evt. noget jeg skal være opmærksom på ved at bruge dennne løsning?
En VARCHAR fylder kun 2 byte + actual length i databasen, så det burde ikke være noget problem.
Jeg har lavet tilsvarende løsninger masser af gange.
Det at attributnavn er en felt værdi kan godt give nogle data problemer. Altså at der bruges forskellige værdier for det samme.
Men tit er det ikke et problem.
Og er det et problem så laver man en tabel med legale værdier i databasen og lader databasen enforec ereferentiel integritet eller man lader applikationen tvinge brugeren til at vælge fra en combo box hvor værdierne hentes fra en konfigurations fil eller noget tilsvarende.
Jeg bliver ved med at spørge :-) Jeg hæver lige pointne lidt.
Jeg skal have lavet nogle produktlistninger hvor der skal vises nogle af de specifikationer der er angivet for hvert produkt. Det skal vælges dynamisk hvilke specifikationer der skal vises i denne liste for underkategori.
Ok, databasen skal bruges til at vise produkter på en hjemmeside, på denne hjemmeside skal man kunne lave en søgning på f.eks. ordet "Sony" der efter skal de fundne resultater vise på følgende måde:
Sony monitore Model Beskrivelse Størrelse Opdateringshastighed .... .... ....
Sony Kameraer Model Beskrivelse AntalPixel Zoom ...... ......
Man skal kunne vælge hvilke specifikationer man ønsker vist for hver produkt i denne listning.
Jo men brugeren af systemet skal kunne vælge dynamisk hvilke felter for hver underkategori der skal vises i en sådan liste, det skal jeg vel have en tabel der holder styr på så?
Nå nu fik jeg endelig tid til at rode videre med den her opgave, jeg håber du er med endnu.
Jeg har lagt et database diagram her: http://test.ibil.dk/db.gif Kan du evt. kigge på det og se om det er realistisk? Jeg smider lige 50 point mere i puljen.
Ja jeg har vist glemt sprog på beskrivelse! Men vil det være bedre at lave en ny primærnøgle i ProduktData (eks. produktDataId) og så bruge den som fremmednøgle i Beskrivelse? Eller er det lige meget at produktId og sprog er primær nøgle i både ProduktData og Beskrivelse?
Nå men hvis ikke der er flere kommentar til spørgsmålet vil jeg afslutte det for de her omgang det kan være at jeg referere til det på et senere tidspunkt.
jeg har set det, men jeg troede at janus kiggede på det - jeg kigger lige
Synes godt om
Ny brugerNybegynder
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.