Gå til innhold

Ny bruker i tilfeldig brukergruppe


Anbefalte innlegg

Det jeg proever og faa til er litt komplisert, men jeg skal proeve og forklare saa godt som mulig... Jeg holder paa og laere meg PHP, og har et lite prosjekt paa gang. Dog jeg er litt usikker paa hvordan jeg skal angripe denne saken.

 

Poenget er at jeg skal ha flere forsjellige brukergrupper, som starter ved 1:1 og slutter ved 5:5. Altsaa 1:1, 1:2, 1:3 ,1:4 ,1:5 ,2:1 , 2:2, etc. Tilsammen 25 grupper. Hver gruppe har en maks grense paa 10 brukere. Det jeg har planer om og faa til er at naar en ny bruker registrerer seg, saa vil han/hun bli plassert automatisk i en tilfeldig brukergruppe, i en tilfeldig posisjon (mellom 1 og 10).

 

Hver brukergruppe skal ha en overordnet leder, som blir valgt demokratisk blandt alle 10 brukerene i den gruppen. Denne lederen kan velge og sette navn paa brukergruppen om oenskelig.

 

I tillegg trenger jeg en slags 'overflow' mekanisme slik at det skulle bli mer en 250 brukere saa vil det bli lagt til x antall ekstra brukergrupper slik at nye brukere kan legges til der.

 

En annen ting som er noedvendig er at dersom en bruker blir slettet, kan en ny bruker overta denne posisjonen.

 

Som sagt saa er jeg i en laerefase naar det gjelder PHP, saa jeg er litt usikker paa hvor jeg skal angripe problemet. Samt at jeg er _veldig_ usikker paa hvordan jeg burde sette opp databasen for aa haandtere dette. Dette er vel egentlig en database problematikk, men det er linket til hovedproblemet mitt saa legger det likevel under denne posten. Har vurdert to muligheter:

 

1. En tabell der hver brukergruppe har sin egen "row", og de 10 brukerene blir lagt til i tomme "columns". Burde bli seende noe slikt ut:

 

-------------------------------------------------------------------------------------
id | gruppe_nummer | gruppe_navn | bruker_1 | bruker_2 | bruker_3 | [...] | bruker_10

 

2. En tabell der hver bruker har sin egen "row" og den brukergruppen de tilhoerer er lagret i en "column". Burde bli noe seende slik ut:

 

-------------------------------------------------
id | bruker_navn | gruppe_nummer | gruppe_navn

 

Litt usikker paa fordeler og ulemper med de to metodene... Paa en eller annen maate saa maa jeg legge inn et stemme system, og har en foelelse av at dette kan bli enklere med metode nr. 2. Bare og legge til en "column" til der jeg lagrer hvor mange stemmer de har for aa bli leder. Den som har mest vinner. Dog ulempe med metode nr. 2 er at den blir en del stoerre, og jeg kan ikke lete etter tomme "columns" i et gruppenummer, slik jeg kan dersom jeg bruker metode nr. 1. Litt usikker paa hva som er best her... Det vil vel sannsynligvis ogsaa komme ann paa hvordan jeg skriver koden til resten av programmet.

 

Anyway, tilbake til hovedproblemet. Jeg ser egentlig ikke etter noen som kan skrive det for meg, men heller noen som har forslag til hvordan jeg kan komme i gang. En slags workflow sheet om man vil kalle det det. Her er saann jeg har tenkt ut akkurat naa:

 

1. Sjekke maks gruppenummer.

Er 5:5 maks, eller er alle fulle og vi trenger flere? Hvis alle er fulle, legg til flere, hvis ikke hopp til neste punkt.

 

2. Finn en ledig plass.

Finne alle ledige plasser og gi de et tall, for deretter og generere et tilfeldig tall fra alle de som er tilgjengelig. Litt usikker paa hvordan jeg skal gjoere akkurat dette, spesielt siden det avhengiger av hvordan jeg setter opp databasen.

 

3. Putt bruker inn

Naar det har funnet en ledig plass, putt bruker inn der og avslutt.

 

Mulig det er en litt tungvindt maate og gjoere det paa... Eller kanskje en grei men ikke optimal maate og gjoere det paa? Jeg aner ikke... Er ikke helt sikker paa hvordan jeg faktisk skal _gjoere_ det heller, men jeg tror det er lurt om jeg finner ut hvor jeg er paa vei, foer jeg begynner og lage veien.

 

Dog hadde jeg satt veldig stor pris paa innspill til hvordan jeg kan loese dette. Om det er et lite tips eller en stor anbefaling, alt tar jeg imot med takk. Jeg er rimelig reava til og forklare ting ogsaa, saa dersom det er noe som er uklart spoer i vei.

 

Uansett, hjertens takk! :)

Lenke til kommentar
Videoannonse
Annonse

en tabell for grupper, med gruppenr(som id), gruppenavn.

 

så har du en tabell for brukere, og i den tabellen har du feltene:

brukerID, brukernavn, gruppe, stemtpå

 

så legger du hvem en person har stemt på i feltet stemtpå. Dette er den beste måten sånn jeg ser det. Hvis du noen gang skal utvide med flere grupper eller flere personer pr gruppe vil denne løsningen fungere fint hele tiden, mens din første løsning ikke gjør det!

Lenke til kommentar

Takker for svar.

 

Godt poeng. Jeg har allerede en tabell med brukernavn, passord, email, osv saa jeg kan bare utvide den med gruppenavn og stemtpaa, samt legge til en ny tabell med gruppene, gruppeid og navn.

 

Har enda ikke faatt planlagt noe skikkelig for resten av problemstillingen, faar se om jeg faar tid til helgen.

Endret av frodeaa
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...