[algoritme] Tabel met datums

Pagina: 1
Acties:

  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
*** titel is in de loop van het topic niet helemaal correct meer gebleken.. ***


Ik denk dat genoeg mensen hier ooit wel eens me te maken hebben gehad
en het is zinloos om het wiel 2x uit te vinden.
Het geval is als volgt,

er is een soort lichtkrant die berichten laat zien, deze berichten worden
toegevoegd door een formulier, in dit formulier kan de gebruiker de volgende
gegevens invoegen:

Begin datum: M/d/YYYY
Eind datum: M/d/YYYY

Frequentie: (selector - keuze opties zijn:)

Eenmalig, Dagelijks, elke Maandag, elke Dinsdag, .. ,elke Vrijdag

Eigenlijk moet het ook nog mogelijk zijn meerdere dagen van de week
te kiezen ..

Ik denk dat er vast wel eens iemand hier mee te maken heeft gehad?
Hoe hebben jullie dat opgelost

In princiepe is het zo dat er een tabel is met daarin

Datum en bericht_id en bij het toevoegen van het bericht zou dan
in die tabel een x aantal records worden toegevoegd voor alle
datums waarop het bericht getoond moet worden ..

Is dit onhandig .. zou dit beter kunnen .. is iemand dit ooit wel eens tegengekomen? zo ja .. hoe heb je dat dan opgelost?

[ Voor 4% gewijzigd door intrix op 09-02-2004 15:08 ]

welcome my son, welcome to the machine


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
Ben geloof ik niet echt duidelijk in wat ik bedoel,

eigenlijk bedoel ik dus, zouden jullie dit met selectoren etc doen,
of een tabel met daarin de hele maand en dan op elke dag
een radio button ofzoiets ..

wat is volgens jullie het makkelijkst?

welcome my son, welcome to the machine


Verwijderd

kun er niet beter per item een cron job/task van maken waarbij je de executie laat verzorgen door je OS en de logica door je applicatie?

  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
Verwijderd schreef op 09 februari 2004 @ 14:41:
kun er niet beter per item een cron job/task van maken waarbij je de executie laat verzorgen door je OS en de logica door je applicatie?
??? ik begrijp je even niet een cron job/task ???

welcome my son, welcome to the machine


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Das een geschedulde task op een linux/unix machine.

Ik begrijp nog niet precies wat je zoekt. Wil je een oplossing voor de database of hoe het grafisch op een formulier in elkaar moet zitten?

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


Verwijderd

intrix schreef op 09 februari 2004 @ 14:48:
[...]


??? ik begrijp je even niet een cron job/task ???
Kijk in windows heb je bijvoorbeeld een hele uitgebreide taskschedular, waarom maak je daar geen gebruik van? Dan hoef je niet zelf het wiel uit te vinden zoals je zelf al zegt

  • -=bas=-
  • Registratie: Oktober 2000
  • Laatst online: 22-04-2025
Als je per bericht gelijk aangeeft op welke dagen dat bericht getoond moet worden dan ben je er toch? Als je dan het script alle berichten voor dag X op laat halen dan kan je ze tonen.

Misschien dat je met Google wel een kant-en-klaar script of een gelijkend script kan vinden. :)

Senile! Senile Oekaki


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
Er komt een msgboard (dat moet ik maken) ..
daar kan je berichten aan toe voegen (deze komen in de tabel BERICHTEN)
vervolgens is er een tabel (DATUMS) waar in komt te staan wanneer
het bericht te zien moet zijn

[ DATUMS: (id), Datum, Bericht_nr; ]

deze tabel wordt uitgelezen door show.asp om te zien welke
berichten er vandaag (nu) op het beeld moeten komen.

maar wat is de makkelijkste manier om een bericht voor een X-aantal
datums in te voegen? Ik bedoel het is bijvoorbeeld mogelijk dat een
bericht vanaf morgen tot en met zoveel april elke woensdag te zien moet
zijn, maar het kan ok deze week op donderdag en dan over 6 weken
op vrijdag nog een keer

hoe maak je het nou zo makkelijk mogelijk om zoveel datums in te vullen?

ik zit momenteel er over te denken om anders een soort kalender op het
beeld te zetten met 10000000en radiobuttons ofzo dat je elke dag
aan kan klikken ofzo..

--------------------------------------------------

Kijk mijn voorganger heeft gewoon gezegd van:

vul een begindatum in is het bericht eenmalig? NEE? vul
dan ook 2e datum in!

Wilt u het bericht dagelijks? Ja .. klaar dan van datum1 tot datum2
bijschrijven aan de tabel en klaar ..

en ander vult ie OF alleen datum1 in

Of datum1 + datum2

------------------------------------------------------

Maar mijn opdrachtgever heeft dat met me doorgesproken en die
wil dat het mogelijk wordt om dus zoals gezegd te kunnen kiezen voor
bijvoorbeeld elke maandag van datum1 tot datum2

of 2 dagen in de week voor een bepaalde periode

of totaal verschillende datums een stuk of 15 ..

nou dat wordt dus lastig met selectoren enzo ..
vandaar mijn vraag... zo iets duidelijker?

[ Voor 32% gewijzigd door intrix op 09-02-2004 15:04 ]

welcome my son, welcome to the machine


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Ik zou gewoon per dag dat het getoond moet worden een record in de DB plaatsten, anders moet je veel gaan rekenen en vergelijken met datums, iets wat ik altijd een gedoe vind met databases.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
guanpedro schreef op 09 februari 2004 @ 15:04:
Ik zou gewoon per dag dat het getoond moet worden een record in de DB plaatsten, anders moet je veel gaan rekenen en vergelijken met datums, iets wat ik altijd een gedoe vind met databases.
Dat gebeurd zoiezo, MAAAAAR ...

mijn vraag is hoe maak je het het makkelijkst naar de gebruiker toe ..

als een gebruiker elke woensdag de komende 2 maanden het bericht op het
scherm wil is het een beetje lullig om die man 9 datums in te laten vullen

Dus dat bedoel ik met HOE los je dit op ..

welcome my son, welcome to the machine


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Ik heb iets dergelijks gemaakt voor een planning:

radiobutton voor eendaags of meerdaags
tekstvakken voor startdatum, einddatum (bij meerdaags)
checkboxes voor ma, di, wo, do, vrij, za, zo
textbox voor bericht

Vervolgens bij meerdaags een loopje maken en voor elke dag die aan de selectie voeldoet een record met het bericht inserten in de DB of als je er bekend mee bent, iets met de windows scheduler doen (geen ervaring mee).

[ Voor 2% gewijzigd door guanpedro op 09-02-2004 15:09 . Reden: foutjes eruit ]

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
guanpedro schreef op 09 februari 2004 @ 15:07:
Ik heb iets dergelijks gemaakt voor een planning:

radiobutton voor eendaags of meerdaags
tekstvakken voor startdatum, einddatum (bij meerdaags)
checkboxes voor ma, di, wo, do, vrij, za, zo
textbox voor bericht

Vervolgens bij meerdaags een loopje maken en voor elke dag die aan de selectie voeldoet een record met het bericht inserten in de DB of als je er bekend mee bent, iets met de windows scheduler doen (geen ervaring mee).
Nou die schedular lijkt me beetje .. tja ingewikkeld voor mezelf zeg maar 8)7

Dus eh .. maar goed zo'n soort loopje had ik ook wel overgedacht maar
dat leek me zo'n puinzooi worden .. maar begrijp dat dat in jouw geval wel het
meeste succes heeft opgelevert? nou ja heb nog de tijd vandaag eerst nog
wat rotklusjes afmaken .. morgen hoef ik pas verder met dit .. maar toch
wel makkelijk als ik dan morgen weet wat ik ga doen ;)

welcome my son, welcome to the machine


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
hehehe krijg net een mailtje van een maatje van me ..
geloof toch dat ik schedular na ga bouwen ;)
Ik zou mij laten inspireren door de sceduled tasks functie van windows. Hiermee kan je best wel uitgebreid aangeven wanneer iets wel of nie moet gebeuren. Daarna zou ik die sceduler nabouwen in access…

Concreet betekent dat dat je een tabel maakt met daarin een aantal regels voor het tontn van berichten, elke bericth kan meerdere regels hebben… Zo even uit het blote hoofd zou die tabel er zo uit kunnen zien. Ik heb de tabel scedules genoemd, de veldnamen zijn volgens mijn eigen standaar naamgeving regels…

---Scedules

Scedule_Message_Id, FK naar bericht tabel
Scedule_Start=datum/tijd wanneer deze regel begint
Scedule_End=datum/tijd wanneer deze regel eindigt
Scedule_Interval=datum/tijd wat tijd aangeeft tussen de herhalingen van bericht
Scedule_Length=datum/tijd wat de tijd aangeeft dat het bericht zichtbaar is

Eenmalig weergeven:
Scedule_Start=begin van de weergeven
Scedule_End=einde van de weergave
Scedule_Interval=null
Scedule_Length=null

Wekelijks op maandag

Scedule_Start=eerste maandag dat ie weergegeven moet worden
Scedule_End=null
Scedule_Interval=7 dagen
Scedule_Length=1 dag
Wekelijks op maandag en woensdag

Zelkfde als wekelijks op maandag ,maar dan moet er nog een record in die hetzelfde is als bij wekelijks op maandag met als enige verschil dat Scedule_Start niet de eerste maandag, maar de eerste woensdag is…

Twee weken op maandag, daarna op donderdag.

Scedule_Start=eerste maandag dat ie weergegeven moet worden
Scedule_End=laaste keer dat ie op maandag weergegeven moet worde
Scedule_Interval=7 dagen
Scedule_Length=1 dag

+

Scedule_Start=eerste donderdag dat ie weergegeven moet worden
Scedule_End=laaste keer dat ie weergegeven moet worde
Scedule_Interval=7 dagen
Scedule_Length=1 dag

Dit is het eerste wat me te binnen schiet, ik kan me voorstellen dat er wel beter oplossingen zijn, maar dit is er in ieder geval een die werkt…

Plz..
alleen neem ik interval niet over in de tabel
maar laat ik mijn functie dmv die interval dan de datums berekenen
en schrijf ze vervolgens weg in mijn datum tabel :)

zo ongeveer dan natuurlijk :)

[ Voor 7% gewijzigd door intrix op 09-02-2004 15:28 ]

welcome my son, welcome to the machine


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Het voordeel van zo'n opzet is dat je flexibeler bent, je kan elke datum in de db opslaan. Je kan later je selectiemethode uitbreiden met nieuwe manieren b.v. elke 2 weken oid.

Verder is de query op de db sneller doordat je niet ingewikkelde compares hoeft te doen.

Het loopje valt wel mee. Het is meer de foutcontrole die wat uitgebreid wordt. Stel je vinkt aan maandag en dinsdag en je kiest 11-feb tot 12-feb, daar zit geen maandag of dinsdag in dus wat doe je dan?

EDIT: Die oplossing ziet er ook netjes uit, maar kost je wel wat werk om uit de database te lezen en te berekenen welke data van toepassing zijn. Dit komt denk ik overeen met het insert loopje alleen draait dat loopje dan wat vaker.

Of begrijp ik het verkeerd en sla je toch per dag de data op?

[ Voor 29% gewijzigd door guanpedro op 09-02-2004 15:37 ]

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

intrix schreef op 09 februari 2004 @ 11:54:
*** titel is in de loop van het topic niet helemaal correct meer gebleken.. ***
offtopic:
Post dan even een topic report met een nieuwe titel als je dat concludeert ;)

Professionele website nodig?


  • intrix
  • Registratie: November 2002
  • Laatst online: 04-12-2023
guanpedro schreef op 09 februari 2004 @ 15:33:
Het voordeel van zo'n opzet is dat je flexibeler bent, je kan elke datum in de db opslaan. Je kan later je selectiemethode uitbreiden met nieuwe manieren b.v. elke 2 weken oid.

Verder is de query op de db sneller doordat je niet ingewikkelde compares hoeft te doen.

Het loopje valt wel mee. Het is meer de foutcontrole die wat uitgebreid wordt. Stel je vinkt aan maandag en dinsdag en je kiest 11-feb tot 12-feb, daar zit geen maandag of dinsdag in dus wat doe je dan?

EDIT: Die oplossing ziet er ook netjes uit, maar kost je wel wat werk om uit de database te lezen en te berekenen welke data van toepassing zijn. Dit komt denk ik overeen met het insert loopje alleen draait dat loopje dan wat vaker.

Of begrijp ik het verkeerd en sla je toch per dag de data op?
Ik sla alle datums gewoon onder elkaar op, ik maak alleen nu op 'windows schedular' achtige wijze een invoer wizzard deze rekent vervolgens uit hoeveel
datums er in de db geknalt moeten worden en knalt ze er vervolgens ook in

welcome my son, welcome to the machine

Pagina: 1