Avatar billede Shasim Novice
14. april 2003 - 13:56 Der er 10 kommentarer og
1 løsning

Begynderproblemer med tabeldesign

Hej

Jeg skal have strikket en database sammen, som skal indeholde ca. 1000 produkter. Produkterne har jeg puttet i én tabel (produkter). Alle produkter har en overflade, og et produkt kan have flere overflader. Mit spørgsmål er hvilke øvrige tabeller og felter jeg skal have for at det bliver gjordt rigtigt?
Avatar billede arne_v Ekspert
14. april 2003 - 14:26 #1
Det er meget få oplysninger du har givet os.

Et gæt ville være 3 tabeller:
  produkter
  overflader
  produktoverflader
hvor produkter har et produktID, overflader har et overfladeID og
produktoverflader har både produktID og overfladeID.
Avatar billede arne_v Ekspert
14. april 2003 - 14:27 #2
Ovenstående baserer sig på en formodning om at en overflade er
farve/materiale og ikke geometrisk d.v.s. at flere produkter kan
have samme overflade.
Avatar billede sjap Praktikant
14. april 2003 - 14:27 #3
Sørg for at produkterne har et unikt ID i den "Produkter".

Lav så en ny tabel "Overflader. Denne tabel skal indeholde et felt med ProduktID'en (så du ved hvilket produkt overfladen tilhører) og så de felter, du vil bruge til at beskrive overfladen.

Formålet med at gøre det på denne måde er at begrænse mængden af overflødig information. F.eks. er det i dit tilfælde ikke nødvendigt at gemme alle produktoplysninger for hver overflade. Produktoplysningerne gemmes én gang og overfladene referer så til produkt-tabellen.
Avatar billede Shasim Novice
14. april 2003 - 14:44 #4
Hmm... Jeg er RET tung til det her.

>>arne v:
Overflader er ganske rigtigt en bestemt forarbejdning af et materiale.
Vil du evt. forklare hvorfor jeg skal have 3 tabeller, og hvilke felter de skal indholde?

>>superjap>
Vil dit forslag sige at jeg skal have en produkttabel med felterne "varenrID" og "overfladenr", og en overfladetabel med felterne "overfladenrID", "overfladenavn" og "varenr"? Vil det virke?
Avatar billede arne_v Ekspert
14. april 2003 - 14:50 #5
Tabellerne produkter og overflade må give sig selv.

Du har brug for den tredie tabel, fordi et produkt kan have flere overflader
og en overflade kan være brugt på flere produkter.

Det kalder vi sommetider for en mange-til-mange relation og det kræver
en separat tabel.
Avatar billede arne_v Ekspert
14. april 2003 - 14:51 #6
produkter
  produktID
  produktnavn
  ...
  (alle de felter du skal bruge)
overflader
  overfladeID
  overfladenavn
  ...
  (alle de felter du skal bruge)
produktoverflader
  produktID
  overfladeID
Avatar billede Shasim Novice
14. april 2003 - 14:53 #7
Tak skal du have - det var lige det.
Avatar billede Shasim Novice
14. april 2003 - 15:00 #8
Er de to felter i produktoverflader-tabellen det man kalder en sammensat nøgle?
Avatar billede arne_v Ekspert
14. april 2003 - 15:05 #9
Ja.

produktID+overfladeID er en sammensat primær-nøgle

og både produktID og overfladeID er fremmed-nøgler.
Avatar billede Shasim Novice
14. april 2003 - 15:13 #10
Ok.

I øjeblikket arbejder jeg kun på et forslag, men når nu jobbet skal laves rigtigt er det vist bedst, at jeg allierer mig med en som har bedre forstand på databasedesign end jeg. Ville det evt. være noget for dig, og hvad tror du din assistance ville koste?
Avatar billede arne_v Ekspert
14. april 2003 - 15:17 #11
Nu er der mange andre end mig der kan det.

Men du kan jo sende mig en email på arne_v@mail.danbbs.dk og
høre nærmere.
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