Случайным образом распределите начальное место между 128 командами, используя php - PullRequest
0 голосов
/ 30 мая 2020

У меня 128 команд участвуют в турнире на выбывание. Я хочу достичь следующего:

  1. Нажав кнопку, я могу поставить эти команды в случайном порядке лицом друг к другу (то есть 64 матча)
  2. Поймите, если вы выиграете, где вы будете размещены в следующей игре и с кем вы столкнетесь

В настоящее время в моей базе данных есть следующие таблицы:

  • команд (список из 500 команд)
  • турниров (это турнир для, например, id = 1)
  • участие (список из 128 команд, которые хотят играть в турнире id = 1)
  • матч (здесь мне нужно как-то добавить команду 1 и команду 2 случайно и также знаю, где в скобке они стоят)

На данный момент для таблицы соответствий у меня есть:

  1. id
  2. Tournament_id
  3. раунд (где турнир 128 команд может go до 7 раундов: 128/64/32/16/8/4/2
  4. игра (то есть на скобке, где она стоит, была думая таким образом, я могу определить, что в раунде 2 игра 1 и игра 2 раунда 1 играют друг с другом et c. не уверен, что это хорошая идея)
  5. team1_id
  6. team2_id
  7. team1_score
  8. team2_score
  9. Win_team_id
  10. статус

У кого-нибудь есть опыт по этому поводу?

Спасибо.

1 Ответ

0 голосов
/ 30 мая 2020

Выбрать все строки из teams в случайном порядке:

SELECT * FROM teams ORDER BY RAND()
/* Or: https://dba.stackexchange.com/questions/955/what-is-the-best-way-to-get-a-random-ordering */

С PHP: для каждых двух извлеченных строк вставляйте строку в match, используя * 1006 первой команды * как team1_id и teams.id 2-й команды как team2_id, остальные поля заполнены соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...