powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Места в спортивной таблице!
6 сообщений из 6, страница 1 из 1
Места в спортивной таблице!
    #39842521
KentoDuval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Нид хэлп!

Пишу сайт для футбольной любительской лиги.

Из-за множества лиг и дивизионов таблицу определенного чемпионата хочу хранить в отдельной таблице бд.

Появился вопрос по ранжированию и подсчету изменений таблицы по сравнению с прошлым туром(команда а поднялась на 2 позиции в 15 туре по сравнению с 14).

Поэтому имею три таблицы(урезанный вариант)

Teams - id, name
Matches - id, teamhome, scorehome, scoreaway, teamaway
Table - id, team, wins, draw, loses, points, position

Вопроса три:
Главный - как не в ручную заполнить Position, чтобы та строка, где очков больше всего(при равенстве очков сравнтваются другие показатели) имела позицию 1 и так далее по кк.
Второй - как можно реализовать сравнение мест в таблице с прошлым туром?

Третий - как на ваш взгляд лучше реализовывать вывод таблицы чемпионата впринципе.

Всем спасибо. Буду рад конструктивным ответам и критике.
...
Рейтинг: 0 / 0
Места в спортивной таблице!
    #39842559
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KentoDuvalИз-за множества лиг и дивизионов таблицу определенного чемпионата хочу хранить в отдельной таблице бд.Bad practice.

Да и чего там тех лиг и дивизионов-то? вряд ли даже до миллиона дотягивает...
...
Рейтинг: 0 / 0
Места в спортивной таблице!
    #39842631
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KentoDuval,

Когда-то делал такую лабуду.

Было довольно много лиг и чемпионатов. Все таблицы ( standings ) хранились в одной таблице базы.
Для сравнения с прошлым туром хранилась история - отдельная таблица ( standings_history ), в которой по сравнению с основной добавляется еще поле для хранения тура и, по желанию, поле для хранения дельты с предыдущим туром.

По заполнению position все просто - варианта целых два:
1) считаем при добавлении матчей на бэке и пишем в базу уже посчитанные позиции;
2) считаем в самой базе какой-нибудь функцией.

Мне больше нравится 1-й вариант.
...
Рейтинг: 0 / 0
Места в спортивной таблице!
    #39842691
KentoDuval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

А можно первый вариант немного подробнее?


И когда ты делал, как ты реализовывал кубковую сетку?
...
Рейтинг: 0 / 0
Места в спортивной таблице!
    #39842772
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KentoDuval,

А че там подробнее

пришли тебе результаты там например Спартак (team_id=1) - Зенит (team_id=2) 1:1 Локомотив (team_id=3) - Вагоны (team_id=4) 3:0

Ты запускаешь пересчет и пишешь в базу

team_id Очки Место
-----------------------
3 3 1
2 1 2
1 1 3
4 0 4

Пришел второй тур - пересчитываешь ВСЮ таблицу. И опять пишешь в базу.
Соответственно таблицу после каждого тура можно сохранить еще в историю для высчитывания разницы в таблице с предыдущим туром.

По поводу кубковой сетки там хитро. Там можно хранить в виде дерева, можно делать ссылки в каждой из пар на предыдущий этап и т.д. А выводить ее там ваще жесть - особенно в верстке. Но при желании все получится. )))
...
Рейтинг: 0 / 0
Места в спортивной таблице!
    #39842850
KentoDuval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

Решил древом делать сетку, вестку примерно продумал. Если отработаю данный способ, буду про теннис делать - а там все на этом построено


Немного дилетанства.

Все равно не понял где именно считаются позиции, чтоб далее в базу записать.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Места в спортивной таблице!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]