login  Naam:   Wachtwoord: 
Registreer je!
 Forum

suggestie logboek van prijzen

Offline lau - 20/08/2006 16:09
Avatar van lauHTML interesse Momenteel heb ik voor elk artikel met bijbehorende onderdelen prijzen staan. Dus er zijn momenteel 2 SQL-tabellen aanwezig:
  1. Tabel artikel
  2. ----------------
  3. id | naam | prijs
  4. ----------------

en
  1. Tabel onderdeel
  2. ----------------
  3. id | onderdeel | prijs
  4. ----------------


Er moet nu bij elke bewerking van beide prijzen een datum en tijd worden geregisteerd. Dus op den duur krijg je bij die ene artikel of onderdeel een soort logboek van prijzen te zien. Wanneer je dus als beheerder op die prijs klikt zie je die logboek met gewijzigde tijden en data's.

Hoe kan ik hiervoor het beste aanpakken? Een extra tabel 'prijzen' aanmaken en hier aan de id's linken (rekening houdend met 2 tabelid's)? En hoe moet die tabel eruit zien? Voor elke wijziging een record opslaan of meerdere wijzigingen in 1 record plaatsen?

7 antwoorden

Gesponsorde links
Offline bosgroen - 20/08/2006 16:57
Avatar van bosgroen Gouden medaille

PHP interesse
Als je de hele historiek wilt bijhouden, zal je een nieuwe tabel nodig hebben om alle data in te kunnen zetten.
Offline Stefan14 - 20/08/2006 16:58
Avatar van Stefan14 PHP gevorderde ik zou een producttabel en een prijswijzigingentabel aanmaken inderdaad.

bijv. zoals volgt:

prijswijzigingen:
id | productID | oude_prijs | nieuwe_prijs | datum

hoewel je oude prijs er eventueel ook uit kan laten omdat je dat aan het vorige record kunt zien (behalve bij de eerste prijswijziging) en datum kun je eventueel ook nog een datetime veld van maken als je ook nog de tijd erbij wilt.

voor iedere prijswijziging zou ik 1 record aanmaken inderdaad, dat is wel zo gebruikelijk.

wanneer je dan de "log" wilt opvragen selecteer je gewoon alles met het desbetreffende productID
Offline lau - 20/08/2006 18:13
Avatar van lau HTML interesse Dus 2 prijswijzigingentabellen maken? 1 voor prijs tabel artikel en 1 voor prijs tabel onderdeel, want je krijgt anders een botsing met oplopende ID's vanaf 0... of toch 1 tabel maken met beide prijswijzigingen erin?
Offline ikkedikke - 20/08/2006 18:49
Avatar van ikkedikke PHP expert
  1. Tabel onderdeel
  2. ---------------------------
  3. id | onderdeel | prijs | vanaf
  4. ---------------------------

  1. Tabel artikel
  2. ---------------------
  3. id | naam | prijs | vanaf
  4. ---------------------

endan als je een prijs wil hebben alleen de laatste er uit halen
Offline lau - 27/08/2006 14:28
Avatar van lau HTML interesse @Ikkedikke: nu snap ik het niet meer wat je bedoelt.
Ik heb 2 bestaande SQL tabellen 'artikel' en 'onderdeel' (onderdeel is een child van parent artikel) - zie post #1 bovenaan.
Ik had van tevoren geen rekening gehouden met een logboek van prijzen, dus werd telkens bij het wijzigen van een prijs de laatste gewijzigde prijs geupdate in die kolom 'prijs'.
Maar doordat het nu in een soort logboek moet komen moet er dus 2 of 1 extra tabellen bij voor die prijswijzigingen?
Hoe jij het nu hebt gedaan snap ik niet waar je 'vanaf' aan wilt koppelen...
Offline Rik - 27/08/2006 14:34
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Vanaf wordt dan toch de timestamp waarop je het hebt gewijzigd?

En dan kan je "SELECT * FROM `onderdeel` ORDER BY `vanaf` DESC" om het onderdeel met de huidige prijs op te vragen.
Offline lau - 27/08/2006 14:39
Avatar van lau HTML interesse Jah.. maar het is niet de bedoeling dat er in datzelfde tabel 'artikel' en 'onderdeel' telkens nieuwe record wordt aangevuld als er een prijs is gewijzigd... lijkt me niet zo ideaal toch? Want dan zal alle kolommen hetzelfde zijn, behalve de ID, prijs en vanaf (ik heb naast kolom naam ook nog een hele reeks kolommen staan - heb ik voor het gemak weggelaten).
Mij lijkt het zinvoller om dan aan tabel 'artikel' en 'onderdeel' ieder een eigen prijswijzigingstabel te koppelen waarin dus elke prijswijziging een nieuwe record is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.22s