Beste allemaal,

Ik ben een registratiescript aan het maken. Dat zit qua techniek etc wel goed maar ik loop tegen de logica aan.

Iedereen die zich registreert kan zich aanmelden voor 1 workshops, van de 6 beschikbare workshops. Na alle validatie van het formulier wordt iedereen onder zijn identificatienummer en workshopinschrijving in de database gezet. (er wordt gevalideerd of er nog genoeg plaatsen zijn).

Nu wordt elke workshop op 2 momenten gegeven, en ik wil dat elke workshop, in de eerste en tweede ronde, gelijkwaardig bezocht worden. Om het tussen de workshops eerlijk te verdelen, is de limiet per workshop het aantal bezoekers gedeeld door het aantal workshops (keer twee, vanwege de twee rondes). Nu zit ik met het volgende: als x aantal bezoekers zich hebben aangemeld voor workshop y, hoe zorg ik dan dat er twee gelijke groepen ontstaan uit x?

Ik heb twee opties: 1) de eerste helft van de records van workshop y wijs ik toe aan workshopronde 1 en de tweede helft aan ronde 2. het probleem hiervan is dat ik ook graag zou willen zien dat de mensen random verdeeld zijn (ik heb reden om aan te nemen dat de ene helft anders zou kunnen zijn dan de andere helft qua mensen). dus dan is optie 2) het random toewijzen dmv rand() aan 1 van de 2 rondes per record, maar het probleem is daarvan dat ik dan niet zeker weet dat de groepen even groot zijn.

Hoe pak ik dit aan?

Jeroen
COUNT op het aantal aanmeldingen op workshop Y en X. Bij de laagste COUNT zet je de nieuwe aanmelding. In geval van gelijk aantal gebruik je een eentje naar keuze, maakt niet uit.
ik wil juist elke workshop in twee groepen verdelen. de verschillende workshops hebben een vaste grootte (die opgevuld gaan zijn)
Zoiets?

- alle deelnemers (deelnemer-ids) van een workshop in een array zetten
- array randomizen met array_rand()
- array opsplitsen met array_chunk()
Als je gecontroleerd hebt dat er genoeg plek is voor elke workshop, dan kan je het aantal mensen evenredig verdelen. Van te voren de volgorde in het array door elkaar husselen garandeert een normalere verdeling. Ga voor Willem z'n oplossing. Je zou ipv. array_rand() ook shuffle() kunnen gebruiken.
Heb je er ook aan gedacht dat bepaalde mensen misschien samen willen/moeten zitten? Dus weet niet of random verdelen de goede oplossing is?
Ah kijk ik wist niet dat die functies bestonden. Daar ben ik mee geholpen!

@DB het is juist de bedoeling om dat soort mensen uit elkaar te trekken: een doel van die workshops is jezelf profileren ipv altijd maar aan anderen op te trekken
Jeroen VD op 22/05/2015 10:34:18

@DB het is juist de bedoeling om dat soort mensen uit elkaar te trekken: een doel van die workshops is jezelf profileren ipv altijd maar aan anderen op te trekken

"Dat soort mensen"?

Waak ervoor dat je niet in je eigen valkuil/overtuigingen trapt. Er zijn veel mensen (ook binnen bedrijven) die het volgen van een workshop als een sociale activiteit beschouwen en die het juist leuk vinden om bij elkaar in het groepje te zitten. Jij gaat nu voor die mensen bepalen wat in jouw ogen goed voor ze is. Ik zou daar voorzichtig mee zijn. Kijk maar eens wat er gebeurt als mensen in de achtbaan niet samen in hetzelfde karretje kunnen, of als mensen die samen reizen bij een vliegtuigreis ineens niet naast elkaar kunnen zitten. Niet iedereen is daar van gediend. Ik denk dat dat ook voor workshops geldt.

Reageren