|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
Всем привет. Нид хэлп! Пишу сайт для футбольной любительской лиги. Из-за множества лиг и дивизионов таблицу определенного чемпионата хочу хранить в отдельной таблице бд. Появился вопрос по ранжированию и подсчету изменений таблицы по сравнению с прошлым туром(команда а поднялась на 2 позиции в 15 туре по сравнению с 14). Поэтому имею три таблицы(урезанный вариант) Teams - id, name Matches - id, teamhome, scorehome, scoreaway, teamaway Table - id, team, wins, draw, loses, points, position Вопроса три: Главный - как не в ручную заполнить Position, чтобы та строка, где очков больше всего(при равенстве очков сравнтваются другие показатели) имела позицию 1 и так далее по кк. Второй - как можно реализовать сравнение мест в таблице с прошлым туром? Третий - как на ваш взгляд лучше реализовывать вывод таблицы чемпионата впринципе. Всем спасибо. Буду рад конструктивным ответам и критике. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 13:21 |
|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
KentoDuvalИз-за множества лиг и дивизионов таблицу определенного чемпионата хочу хранить в отдельной таблице бд.Bad practice. Да и чего там тех лиг и дивизионов-то? вряд ли даже до миллиона дотягивает... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 14:57 |
|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
KentoDuval, Когда-то делал такую лабуду. Было довольно много лиг и чемпионатов. Все таблицы ( standings ) хранились в одной таблице базы. Для сравнения с прошлым туром хранилась история - отдельная таблица ( standings_history ), в которой по сравнению с основной добавляется еще поле для хранения тура и, по желанию, поле для хранения дельты с предыдущим туром. По заполнению position все просто - варианта целых два: 1) считаем при добавлении матчей на бэке и пишем в базу уже посчитанные позиции; 2) считаем в самой базе какой-нибудь функцией. Мне больше нравится 1-й вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 16:56 |
|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
MikkiMouse, А можно первый вариант немного подробнее? И когда ты делал, как ты реализовывал кубковую сетку? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 18:17 |
|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
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 Пришел второй тур - пересчитываешь ВСЮ таблицу. И опять пишешь в базу. Соответственно таблицу после каждого тура можно сохранить еще в историю для высчитывания разницы в таблице с предыдущим туром. По поводу кубковой сетки там хитро. Там можно хранить в виде дерева, можно делать ссылки в каждой из пар на предыдущий этап и т.д. А выводить ее там ваще жесть - особенно в верстке. Но при желании все получится. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 23:43 |
|
Места в спортивной таблице!
|
|||
---|---|---|---|
#18+
MikkiMouse, Решил древом делать сетку, вестку примерно продумал. Если отработаю данный способ, буду про теннис делать - а там все на этом построено Немного дилетанства. Все равно не понял где именно считаются позиции, чтоб далее в базу записать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 10:23 |
|
|
start [/forum/topic.php?fid=47&msg=39842631&tid=1829037]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 429ms |
0 / 0 |