[MySQL] prijzen verschillen per datum..

Pagina: 1
Acties:

  • Ra5a
  • Registratie: December 2000
  • Niet online

Ra5a

L'Enfant terrible.

Topicstarter
De title is waarschijnlijk een beetje wazig..

Maar ik zit nu te denken hoe ik dit het beste kan doen
het zit nl. zo,

ik heb hier een product wat ik in een tabel heb plus de informatie wat ik erbij heb enz. enz.

maar ik moet er ook de prijzen bij krijgen en die verschillen per datum per product.

dus bv.:
product0; 25-01 tot 28-01 E. 50; 29-01 tot 06-02 E.25
product1; 24-01 tot 29-01 E. 75; 30-01 tot 03-02 E.60

enz. enz.

maar ik weet nu dus écht niet of ik dat in het tabel van het product moet stoppen of een andere tabel moet maken..
dat is niet het ergste probleem..

het belangrijkste is hoe ik die prijzen variabel kan opgeven en dus ook searchable kan maken..

Imperfectionist.


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Je kunt een extra tabel maken, met daarin per productid de verschillende prijzen voor dat product op de verschillende data:

code:
1
2
3
4
5
6
create table
(
productid integer
datum date
prijs float
)


Op die manier kan je makkelijk een nieuwe prijs voor een bepaald product op een bepaalde datum toevoegen, en kan je ook makkelijk zoeken

[ Voor 27% gewijzigd door whoami op 24-01-2003 17:34 ]

https://fgheysels.github.io/


  • Freee!!
  • Registratie: December 2002
  • Laatst online: 25-08 16:25

Freee!!

Trotse papa van Toon en Len!

Aparte tabel, met regels per product en datum-range (sleutel). Je zult zelf moeten zorgen dat datum ranges elkaar niet overlappen. Als alternatief zou je iets kunnen bouwen dat voor een opgegeven range regels met alle mogelijke datums* opvoert, dan krijg je zeker geen overlap.

*Ik gebruik hier bewust 'datums' ipv het correcte 'data' om verwarring met de term 'data' voor gegevens te vermijden.

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Verwijderd

Als ik jou was zou ik de prijzen van - tot bepaalde tijden gewoon in hetzelfde record als het product zetten, in een DATE veld. Dan kun met de date functies van php wat gaan klooien...

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

bedoel je dat he achteraf moet kunnen kijken in wat de prijs van een produkt was in een bepaalde periode? Volgens mij kun je dat wel zo doen:

code:
1
2
3
4
5
6
7
tabel_prijs(id, produkt, begindatum, einddatum, prijs)
  id               primary key
  product      vreemde sleutel naar product

 
tabel_product(id, naam, prijs)
   id       primary key


wat je doet is de prijs van het product nu in tabel_prduct zetten, en als dit wijzigt voeg je een record toe aan de tabel tabel_prijs. Misschien nog in de tabel_produkt een datum veld met begin datum. Dan kun je lekker snel controleren of je een oude prijs moet zoeken.

www.fendt.com | Nikon D7100 | PS5


  • Ra5a
  • Registratie: December 2000
  • Niet online

Ra5a

L'Enfant terrible.

Topicstarter
nou kijk..
even als voorbeeld

hotel 1
als je de reis boekt voor de data 25 januari tot 29 jan. dan is de prijs 100 E.
als je van 30 jan. tot 5 feb. wilt gaan is de prijs 150 E.

(er zijn per product ongeveer 20 verschillende datums waarop de prijs verschilt)

enz. enz.

maar elk hotel heeft op variabele data een variable prijs..

dat wordt allemaal ingevoerd (de datum + prijs voor de datum)
maar ik moet nat. weten hoe ik dat moet doen..

hopelijk begrijpen jullie het nog :)

[ Voor 10% gewijzigd door Ra5a op 24-01-2003 17:56 ]

Imperfectionist.


Verwijderd

Dus dat betekent 2 tabellen maken.
1tje waar je begin en einddatum + prijs in op slaat (en natuurlijk productid)
en 1tje waar je het product zelf in op slaat, naam beschrijving e.d.
Je kunt door 1 query het product op halen, en door een 2e querie de prijs op een bepaalde datum.
Succes!

  • Ra5a
  • Registratie: December 2000
  • Niet online

Ra5a

L'Enfant terrible.

Topicstarter
bedankt allemaal
ik ga er vandaag aan beginnen :)

Imperfectionist.

Pagina: 1