问候!
我目前正在为在线国际象棋游戏构建匹配逻辑。
但是,我在弄清楚如何想出一个逻辑来获得一个可以相互竞争的用户池时遇到了很多麻烦。
所以基本上,我的数据库表设计如下:
Users
-------
ID | Username | Gender
1 | GKasparov | Male
2 | MCarlsen | Male
3 | VKramnik | Male
4 | JPolgar | Female
5 | HYifan | Female
6 | KHumpy | Female
......
还有另一张桌子用来存放他们的描述
ELO
------
ID | Rating
1 | 2000
2 | 1990
3 | 1800
4 | 1990
5 | 1980
6 | 1700
.......
我需要想出一种方法来为每个相互匹配的查询收集多达 10 对用户。
所以在我的搜索结果中,我需要 10 个组,每组两个用户,总共 20 个用户。
我想的结果是这样的:
Group 1: #1, #41 (Males Match)
Group 2: #2, #55 (Males Match)
Group 3: #3, #22 (Males Match)
Group 4: #4, #55 (Females Match)
Group 5: #5, #23 (Females Match)
.......
Group 10: #6, #13 (Females Match)
有没有办法在 SQL 中做到这一点?
此外,只有男性可以与男性匹配,也许将来会考虑他们的自尊。
任何建议将不胜感激。
我也使用 PHP 作为我的应用程序服务器。
先感谢您。