04. september 2010 - 00:10Der er
8 kommentarer og 1 løsning
design af materieldatabase
Hej
Jeg er i gang med at lave en database som skal indeholde data om alt vores edb-udstyr på mit arbejde.
I forbindelse med designet af databasen hænger jeg lidt fast i om jeg skal oprettte en tabel for hvert type edb-udstyr(en printer-tabel, en pc-tabel, mobiltelefon-tabel ..ect) eller om alt skal puttes i samme tabel(udstyr-tabel).
det virker meget ufleksibelt at lave en tabel til hver type - en tabel med type og en tabel med udstyr samt evt en tabel med egenskaber og en relation mellem de to sidste såfremt der skal egenskaber på.
Enig med keysersoze, du skal sørge for at normalisere dine data, så du senere kan udvide med nye kategorier og enheder. Hvis du følger det råd, vil det spare dig for meget bøvl og besværlige løsninger i fremtiden, når du skal udvide og videreudvikle dit system.
Du skal også overveje, om nogen af enhederne kan tilhøre flere forskellige kategorier, f.eks for at gøre det lettere at søge på dem. I så fald skal du bruge en mange-til-mange relation, ellers kan du klare dig med en en-til-mange relation mellem tabellerne.
Ok. En tabel til det hele. Er det dårligt design, hvis man laver felter i tabellen som kun bruges af en speciel type ex. mobiltelefon som har et imei nr. eller vil det være mere hensigtsmæssigt at lave egenskabstabeller for de enkelte typer som keysersoze hentyder til? Vedr. egenskabstabeller for de enkelte typer mobiltlf., pc'er, printer ect. Er man så ikke næsten tilbage til udgangspunktet med at lave en tabel for hver type?
Der vil altid være tilfælde der kan bryde reglen - men som udgangspunkt er det en dårlig idé med imei nummer i en tabel hvor kun nogle typer benytter.
Jeg taler ikke om egenskabstabeller for hver type men derimid én tabel med alle egenskaber i - det er relationstabellen mellem egenskaber og udstyr hvor selve værdierne ligger i.
Ok, men jeg må indrømme jeg ikke kan forstå det med en egenskabstabel. Hvilke oplysninger skal der gemmes i denne tabel? Hvis den ikke er type specifik vil der vel være en masse felter i den som har en null-værdi, og så kunne man vel ligeså lægge dataerne direkte i udstyrs tabellen.
Keysersoze kan du give mig et eksempel på hvordan dataerne ville være repræsenteret i tabellerne for en mobiltelefon(navn, imei), en pc(navn, mac-adresse, ipadresse) og en printer(navn,mac-adresse, ipadresse, sharenavn).
->Keysersoze tak for det nu forstår jeg hvad du mener med en egenskabstabel og relationstabellen Udstyr_egenskaber.
Tror dog at jeg vil lave egenskabsfelterne direkte i udstyrtabellen og acceptere at nogle egenskabsværdier er null. Jeg synes det virker noget nemmere at implementere.
Tak for jeres input, send venligst et svar så jeg kan få lukket spørgsmålet.
Der er ingen tvivl om at det formentlig gør det lettere at implementere - til gengæld bliver det et helvede at udvidde :)
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.