Kom ihåg mig?

MySQL: Para ihop medlemmar 2 & 2?

 
Ämnesverktyg Visningsalternativ
Oläst 2014-06-30, 17:04 #1
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Standard MySQL: Para ihop medlemmar 2 & 2?

Tja!

Har ett litet problem som blev krångligare än vad jag tänkt, antingen det eller så har jag tillfällig hjärnblödning för jag kommer inte ihop något smart & effektivt sätt att lösa detta på för enda sättet jag kommer på resulterar i en otroligt mängd queries, jag måste ha missat något.

Har kollat runt lite men nja:
http://stackoverflow.com/questions/1...pair-two-users
http://stackoverflow.com/questions/1...pairs-in-mysql


Iaf, jag vill para ihop medlemmar 2 & 2 bland medlemmar som har anmält sig till ett evenemang.

Har en användardatabas, förenklar grovt nu & tar bara med dom relevanta kolumnerna:

Tabellen Users
UserID BIGINT auto_increment
UserGender TINYINT (1 = man, 2 = kvinna)
UserCity SMALLINT (använder kommunkoder så City är lite missvisande men spelar ingen roll)



Tabellen EventUsers
EventID BIGINT auto_increment
EventUserID (sparar UserID för varje person som anmält sig till eventet)
EventGender (gender i detta fallet är inte anmälarens UserGender utan vilket gender som anmälaren önskas paras ihop med, kan lämnas tom)
EventCity (samma här, det är inte anmälarens UserCity utan det är vilken stad som anmälaren önskas paras ihop med)


Tabellen EventMatches (för att spara paren så dom 2 inte kan paras ihop igen eller med andra)
MatchID BIGINT auto_increment
MatchUser1ID BIGINT (ja detta är bara pseudonamn änsålänge)
MatchUser2ID BIGINT (ja detta är bara pseudonamn änsålänge)

Både tabell EventUsers & EventMatches rensas efter varje event

Det som ställer till det är att jag måste kunna matcha ihop 2 användare inom samma matchnings kriterier, hade inte kriterierna funnits, EventGender & EventCity så hade jag ju kunnat göra det lätt för mig och bara slumpa ihop 2 & 2 från EventUsers tabellen, men det kan jag ju inte nu.

Jag kan ju lösa det genom att loopa igenom alla EventID & köra 1 query på Users databasen för varje EventUsers deltagare för att para ihop 2 st med kriterier som passar varandra & sen lägg in resultatet i en annan tabell (EventMatches), en rad för varje par matchning. detta fungerar, & det är så jag gör tillfälligt nu, MEN om jag skulle få 1000 deltagare i eventet så blir det ju 1000 queries mot Users+join mot EventMatches tabellen. Vilket är långt, långt ifrån optimalt.


Så ja, ett smartare sätt att lösa detta på? Ni behöver inte slänga upp massa kod osv utan det räcker att ni pekar mig mot rätt riktning

Senast redigerad av JesperA den 2014-06-30 klockan 17:07
JesperA är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017