Avatar billede sonurpals Nybegynder
21. februar 2006 - 00:53 Der er 2 kommentarer

Spørgsmål om normalisering af tabeller

Hej.. jeg ved ikke helt hvordan jeg skal forklare mit problem men her kommer et bud.

Jeg har 2 tabeller i en MySQL db. En til kunder og alle deres oplysninger med primary key customerId og en anden til produkter og de oplysninger som er tilknytted til produkted (productId som primary). Når jeg så skal lave en order fra en kunde så er jeg lidt i tvivl om hvordan jeg skal gøre det selv om at det lytter simpelt. En order er tilknytted til en kunde som kan have mange ordre(1-n) og en order kan indeholde mange produkter (1-n) og et produkt i en order kan have 1 eller flere stk af bestemt produkt.
Skal jeg lave en orderTabel o en anden tabel til orderInfo eller kan det gøres på en anden måde?

orderTable(orderId, kundeId)
orderInfo(orderId, produktId, antal)
Avatar billede ffsoft Praktikant
21. februar 2006 - 14:24 #1
Du har tre tabeller: tblKunde, tblProdukt og tblOrdre

tblKunde
  KundeID
  Kundenavn osv

tblProdukt
  ProduktID
  Produktnavn osv

tblOrdre
  OrdreID
  OrdreDato
  KundeID

Du skal bruge en fjerde tabel:

tblOrdre_Produkt
  OrdreID
  ProduktID
  Antal

I mellem Kunde og Ordre er der en n-til-m relation
med Kunde på 1 siden. En Ordre kommer fra en og kun en
Kunde. En Kunde kan have flere Ordrer.
I mellem Ordre og Produkt er der en m-til-m relation.
En Ordre kan bestå af mange Produkter. Et Produkt kan
forekomme i mange ordrer.

Se mere her http://www.ffsoft.dk/relationer/relationer.asp
Avatar billede sonurpals Nybegynder
23. februar 2006 - 15:00 #2
Tusind tak
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
Computerworld tilbyder specialiserede kurser i database-management

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