[Database] Regel per tijdsinterval zonder einddatum

Pagina: 1
Acties:

Onderwerpen


  • Alain
  • Registratie: Oktober 2002
  • Niet online
Ik speel met het idee om een simpel programmaatje te maken waarin ik mijn financiele administratie kan zetten. Ik heb bestaande programma's geprobeerd, maar daar snap ik niet veel van. Vandaar dat ik het zelf wil maken.

Ik wil heel simpel het volgende:

Reservering (bijv. Auto - Brandstof, Telefoon of Verzekeringen)
ReserveringInterval (begindatum, einddatum, interval en bedrag)
ReserveringRegel (Een regel per interval van ReserveringInterval. Hier komt een transactie tegenover te staan)

Wanneer de begin- en einddatum bekend zijn is er geen probleem, want dan kan ik alle reserveringregels aanmaken. Mijn probleem is dat het vrij logisch is om een reservering interval aan te maken zonder einddatum. Wanneer wordt de reserveringregel dan aangemaakt?

Wat ik zelf bedacht heb:
  • De applicatie verzorgd dit bij het opstarten en op een timer event van een dag ofzo. Daarnaast bij het toevoegen of aanpassen van een reserveringinterval
  • De database voegt de regels toe met behulp van triggers
Mijn gevoel zegt dat de applicatie deze regels aan moet maken, omdat er anders veel checks zullen zijn die niet nodig zijn (bij elke select checken of er regels aangemaakt moeten worden).

Hoe zouden jullie zoiets oplossen? Zijn er betere manieren?

Edit:

Ik bedacht mij net nog een mogelijkheid:

Je redeneert per jaar en aan het begin van elk jaar maakt de applicatie de reserveringregels aan voor dat jaar. Daarnaast worden de regels toegevoegd bij het aanmaken of wijzigen van een reserveringinterval. Dit lijkt me eigenlijk best overzichtelijk.

[ Voor 10% gewijzigd door Alain op 11-02-2010 19:26 ]

You don't have to be crazy to do this job, but it helps ....


  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 15-03 08:21
AlainS schreef op donderdag 11 februari 2010 @ 19:02:
Mijn gevoel zegt dat de applicatie deze regels aan moet maken, omdat er anders veel checks zullen zijn die niet nodig zijn (bij elke select checken of er regels aangemaakt moeten worden).
Dit lijkt me onlogisch. Het vullen van de reserverignen op basis van de begindatum en de interval zou ik eerder in een database job stoppen. De schedule is lastig zoals je zelf al zegt. Het hangt veel af van het tijdspad waar je normaal mee werkt. Bij een financieel systeem maak je toch boekingsjaren aan, dus als het niet om teveel data gaat, zou ik de reserveringen vanaf begindatum tot het einde van dat jaar laten aanmaken, waarbij je bij het aanmaken van een nieuw boekingsjaar, de reserveringen overneemt en weer voor 1 jaar laat berekenen.

Als je planning oid niet verder dan een paar weken gaat, kun je ook tot max. 2 maanden in de toekomst gaan aanmaken.

Je beschrijft dat je per interval een record nodig hebt, om je boeking aan op te hangen, dus wellicht gaat het volgende niet op, maar wie weet:

Ik heb het in het verleden zo gebouwd, dat een reservering alleen het eerste record in de database heeft, met begindatum en interval, en dat runtime bepaald wordt of die afspraak op een bepaalde dag voorkomt.

Je hebt dan per reservering de mogelijkheid om hem te laten repeteren iedere zoveel dagen, iedere zoveel maanden of iedere zoveel jaren (beetje zoals Outlook Calendar dat doet).

Stel dat je donderdag 11 februari hebt, dan moet je alle reserveringen tonen die:

- Op de 11e van de maand zijn aangemaakt, en maandelijks repeteren
- Op donderdag zijn aangemaakt en wekelijks repeteren
- Op de 11e februari zijn aangemaakt en jaarlijks repeteren
- Etc

Dit kan behoorlijk complex en zwaar worden om runtime te berekenen, maar de hoeveelheid data zal bepalen of dit een optie is voor je.