Avatar billede danco Nybegynder
22. september 2011 - 11:08 Der er 7 kommentarer og
1 løsning

Beholde historik

Hej alle experter.
Jeg sidder og er ved at bygge et webshop modul til mit eget CMS system. Dertil har jeg følgende MySQL tabeller:

Orders:
id - paymethod - submitted - paid - customerId - checkSum

Customers:
id - firstname - lastname - streetname - streetNumber - floorside - floornumber - zip - phone - email

Products:
id - header - description - releaseYear - inStock - price - category

ProductsInOrder:
productId - OrderId - quantity

ProductCategory:
id - header

jeg skal jo naturligvis kunne lave en faktura hvilket også fungerer fint ud fra ovenstående database, men jeg kom i tanke om en meget interessant problematik.
Lad os antage at priserne på produkterne ændres, og at man ønsker at få genereret et faktura ud fra de "gamle" priser.

Skal jeg ud i at generere PDF faktura og gemme på serveren, eller skal jeg lave et objekt og gemme i databasen som BLOB eller skal jeg have en tabel der indeholde alle ændringerne. Eller skal jeg ud i noget helt andet.
Alle inputs er meget velkomne.
Avatar billede majbom Novice
22. september 2011 - 11:16 #1
jeg ville lave en tabel til produkter på ordren hvor prisen på købstidspunktet (bl.a.) gemmes.

hvad nu hvis du sletter et produkt fordi det udgår/bliver "afløst", ås har du også et problem.
Avatar billede danco Nybegynder
22. september 2011 - 11:27 #2
Splazz ;
Står jeg så i virkeligheden overfor en problematik hvor jeg skal se stort på at undgå redundant information ?
Det er jo primært det jeg har tænkt over i ovenstående og også det der giver mig hovedpine nu.
Avatar billede majbom Novice
22. september 2011 - 11:32 #3
det er nok overdrevet at tage alt information med, men det der skal bruges til en fakturalinje ville jeg helt sikkert have i en seperat tabel
Avatar billede danco Nybegynder
22. september 2011 - 11:45 #4
Splazz:
Jeg vil nu ændrer tabellen "productsinorder" så den ser således ud:

Invoice:
orderId - ProduktText - unitPrice - quantity

Hvis du er enig må du meget gerne smide et svar :)
Avatar billede majbom Novice
22. september 2011 - 15:07 #5
det ser sq meget fornuftigt ud :)
Avatar billede danco Nybegynder
22. september 2011 - 15:21 #6
Det er implementeret og fungerer fint ;)
jeg takker for input og lukker ;)
Avatar billede majbom Novice
22. september 2011 - 16:23 #7
selv tak og tak for point :)
Avatar billede arne_v Ekspert
09. oktober 2011 - 05:11 #8
Lidt blandede kommentarer:

1) man sletter naturligvis aldrig varer - man saetter active feltet til false

2) den angivne loesning med at have pris i fakturalinien er formentligt den bedste - ikke fordi at det er den bedste loesning paa priser som aendrer sig, men fordi at det er den bedste loesning paa priser som forhandles individuelt (at angive en rabat procent giver anledning til alskens afrundings problemer)

3) hvis der ikke er noget som hedder individuelle priser men kun prisr som aendres ovr tid ville jeg overveje en struktur som:

fakturalinie(vareid, ..., prisversion)

vare(vareid,...)

varepris(vareid,prisversion,pris,starttim,endtime)
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
Kurser inden for grundlæggende programmering

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