Ämne: SQL fråga
Visa ett inlägg
Oläst 2013-12-15, 04:05 #1
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Här visar jag ett försök att ha normaliserat din databas till 3NF för att visa vilka konsekvenser det får och hur det kan se ut i just ditt fall.

Databasen behöver normaliseras så man lägger upp separata tabeller för:

Tabell: Kund
- Kundnr (PK)
- Personnr (ev. FK)
- Namn


Tabell: KundOrder
- Ordernr (PK)
- Datum
- Kundnr (FK->Kund.Kundnr)

Tabell: KundOrderRad
- Ordernr (PK->KundOrder.Ordernr)
- RadNr (PK)
- ArtikelID (FK->Artikel.ArtikelID)
- FaktisktPris
- Antal
- RadRabattBelopp


Tabell: Artikel
- ArtikelID (PK)
- Benämning
- Pris
- Moms

Tabell: Betalning
- BetalningsID (PK)
- Datum
- OrderNr (FK->KundOrder.Ordernr)
- Belopp
- Betalsätt (FK->Betalsätt.BetalsättID)

Tabell: Betalsätt
- BetalsättID (PK)
- BetalsättNamn


Du behöver normalt bryta ut betalning från kundorder-tabellen eftersom kunder ofta betalar fel belopp och då kommer det att finnas flera olika betalningar med olika datum som du behöver hålla koll på.

PK => Primärnyckel (Primary Key på engelska, kan vara en eller flera kolumner i databasen)
FK => Främmande nyckel (Forreign Key på engelska) Pekar på en primärnyckel i en annan tabell.

En FK kan även vara en PK samtidigt, då kallas det för att relationen ät Identifying....

Senast redigerad av Conny Westh den 2013-12-15 klockan 04:12
Conny Westh är inte uppkopplad   Svara med citatSvara med citat