webForumDet fria alternativet

Shoppingsystem

6 svar · 356 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Hej!

Jag har gjort detta förut, men nu håller jag på att strukturera om databasen och därmed vill jag även ha nya vinklingar på hur man löser det på bra sätt.

Detta är vad jag vill ha:

Produkter - Här ser man ett antal produkter med ett pris och man kan lägga i produkt för produkt och det är ett pris för varje produkt

Paket - Här är det tex 10 produkter för ett rabatterat pris, tex 10 produkter 6995:-

Varukorg - Här kan man se alla produkter och paket, och ett total pris.

Exempel

banan 25:-
äpple 40:-
paket 2 6995:-

Totalt: 7060:-

Som jag har löst det idag har jag en varukorg som ser ut såhär:

anvid - Kopplar köparen till rätt artikel
paketID - Är 0 om det inte är paket, får ett nummer som har en relation till en annan tabell där paketen och paket priset finns
prodID - är 0 om det inte är produkt, får ett nummer som har en relation till en annan tabell där alla produkter och produkt priser finns.
Antal - Antal av paket/produkt

Det är väl så den ser ut i stort sätt, några fler fält finns men inget viktigt

Detta sättet anser jag vara nödlösning och fantasilöst. Jag skulle vilja lösa det enkelt på detta sättet:

exempelvis med tre tabeller.

tabOrder - Här finns information om ordrarna
orderID - Orderns nummer
KundID - Kundens nummer (kopplad till kund tabellen)
Avbet - Kryssruta, om kunden vill köpa via avbetalning
Kort - Kryssruta, om kunden vill köpa med kort
frakt - Kryssruta, om kunden vill att produkterna fraktas
fraktexkl - Pris på frakten för kunden
Datorpaket - Kryssruta, om kunden vill ha paketet byggt eller i lösa delar
Kundpris - Slutgiltliga priset för kunden att betala, för både lösa artiklar och paket
Status - Status på ordern (Beställt, offert osv)

tabOrderArt - Här finns information om artiklar som är i ordrarna
orderID - orderns nummer (kopplas till tabOrder)
ArtID - Artikelns id nummer
Artikel - Artikelns namn
ArtAnt - Antal artiklar
ArtExkl - Pris på artikeln

tabOrderDator - Här finns information om paket som är i ordrarna
orderID - orderns nummer (kopplas till tabOrder)
CPUID - CPU´ns id nummer
CPU - CPU´ns namn
CPUAnt - Antal CPU i paketet
CPUExkl - CPU´n pris
RAMID - RAM id nummer
RAM - RAM namn
RAMAnt - RAM antal
RAMExkl - RAM pris
osv...

Anledningen att jag inte kopplar artiklarna och paketen (tabOrderArt och taborderDator) till tabArt är att jag vill kunna ha ett arkiv med kundens ordrar, och då skall även arikelnamnen stämma samt deras pris. Därav måste jag ju lägga in all sådan information i den tabellen.

Saken är den nu att i varukorgen, hur jag skulle gå till väga för att lista paket och priset osv med denna lösning.

Någon som har några tips om detta eller hur man kan göra på andra sätt?

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

Citat: "Dööö, den modellen é inte ihopfällbar!"

[Redigerat av Brimba den 27 jun 2000]

emissionMedlem sedan dec. 19996 721 inlägg
#2

Det är faktiskt lite klurigt....

Om du verkligen vill "ha ett arkiv med kundens ordrar, och då skall även arikelnamnen stämma samt deras pris" så avlider ju relationstänkandet lite. Jag förstår att du vill ha funktionen, men du måste leva med att "arkivet" blir relationslöst, förutom för vissa smådelar.

Den mest slimmade lösningen blir att göra "paketen" till en egen produktkategori, jämställd med de övriga.

Paketens sammansättning bygger på en relation till tabArt (som jag vet att du har).

tabPaketLookUp
ArtID - Paketet har ju ett artid
tabArt_ArtID - relationsnyckel

De båda kolumnerna utgör en sammansatt primärnyckel.

tabOrderDator ryker all världens väg.

tabOrderArt
orderID
ArtID
ArtAnt - Antal artiklar
ArtExkl - Pris på artikeln (om man vill
att det ska orört/orelaterat)
PaketArtID - om artikeln är en del av ett paket i ordern

Det blir ju inte en totalsnygg relationslösning, men eftersom databasen, per definition, ska innehålla "gammal" information, så blir det tyvärr så här.

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

Hej!

Tack för ditt svar, nu är det ju bara så att man skall klura ut vad du egentligen menar :)

Jag förstår det mesta av din tankegång, men ändå är det en sak jag funderar över.

Detta:

tabPaketLookUp
ArtID - Paketet har ju ett artid
tabArt_ArtID - relationsnyckel

Är det så att ArtID inte är unik medan tabArt_ArtID är kopplad till vilken artikel det är?

För på så sätt får man samma nummer i tabOrderArt och kolumnen PaketArtID och kan därmed ta bort eller "sätta samman" det som ett paket.

Berätta gärna lite mer.

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

emissionMedlem sedan dec. 19996 721 inlägg
#4

Ja, det naturliga hde varit att bara ha ett artid för ett paket i tabOrderArt, men för att tabOrderArt ska kunna utgöra ett arkiv, måste data tyvärr dubbellagras.

Man skulle ju kunna tänka sig att ett pakets sammansättning förändras, och hade man bara paketets artid i tabOrderArt så skulle ju de gamla ordrarna också påverkas.

Nu hänger det hela lite på var i köpprocessen du vill att den definitiva ordern ska arkiveras, men det borde rimligen vara vid beställningstillfället.

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

BrimbaMedlem sedan dec. 19995 875 inlägg
#5

Tack Gunnar!

Det är när man tänker efter en ganska bra lösning du har klurat fram!

Tack återigen!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

emissionMedlem sedan dec. 19996 721 inlägg
#6

Det är alltid trevligt att hjälpa dig. :)

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

BrimbaMedlem sedan dec. 19995 875 inlägg
#7

Jag kom just på en sak!

Med din lösning blir det endast möjligt att köpa paketen som de är.

Men jag vill kunna ändra i paketen, tex om grundpaketet är 64MB och kunden kanske vill ha 128MB i ett paket så skall det ju gå bra.

Det går ju att lösa som jag tidigare har skrivit, men har du någon bra lösning på det problemet?

för att ytterligare förklara vad jag vill göra har jag gjort en skiss, du kan titta på den här:

http://www.datormaklarna.se/images/wfemission.gif

Med detta menar jag att jag vill ha en order men att det är möjligt att ha flera paket och även justera dessa pekets innehåll, det skall även finnas en övrigt ruta i själva paketet om man kanske vill beställa övriga artiklar vid sidan av själva paketen.

Hoppas du förstår :)

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

[Redigerat av Brimba den 29 jun 2000]

131 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)