powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Спортивный сайт
9 сообщений из 9, страница 1 из 1
Спортивный сайт
    #39323223
PBSchmeichel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, вопрос такой:
На досуге решил заняться созданием спортивного сайта про футбол с базой данных соревнований. Делаю для себя с целью понять как это работает. Раннее работал только на джумле и вордпрессе, но только в PHP, в базы лазил по миниимуму.
Плагинов не нашел готовых, решил нечто похожее сделать сам.
Для начала создал две таблицы: матчи(айди, команда1, команда 2, голыкоманда1, голыкоманда 2) и Команды(айди, Название)
Далее писал запрос на добавление команд и игроков, в итоге вел 20 команд, и 380 матчей чемпионата(2 круга, 1 матч дома, 1 - в гостях).

Теперь вопрос: как лучше вывести таблицу чемпионата на страницу сайта?
Попробовал через запрос, запрос получился длинный:Всем привет, вопрос такой:
На досуге решил заняться созданием спортивного сайта про футбол с базой данных соревнований. Делаю для себя с целью понять как это работает. Раннее работал только на джумле и вордпрессе, но только в PHP, в базы лазил по миниимуму.
Плагинов не нашел готовых, решил нечто похожее сделать сам.
Для начала создал две таблицы: матчи(айди, команда1, команда 2, голыкоманда1, голыкоманда 2) и Команды(айди, Название)
Далее писал запрос на добавление команд и игроков, в итоге вел 20 команд, и 380 матчей чемпионата(2 круга, 1 матч дома, 1 - в гостях).

Теперь вопрос: как лучше вывести таблицу чемпионата на страницу сайта?
Попробовал через запрос, запрос получился длинный:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT `match_home_team` as  id_team,
(SELECT COUNT(*) FROM rod_match WHERE match_home_team = id_team OR match_away_team = id_team) AS GP,
(SELECT SUM(case when match_goal_home > match_goal_away then 1 else 0 end) FROM rod_match WHERE match_home_team = id_team)+(SELECT SUM(case when match_goal_home < match_goal_away then 1 else 0 end) FROM rod_match WHERE match_away_team = id_team) as w,
(SELECT SUM(case when match_goal_home = match_goal_away then 1 else 0 end) FROM rod_match WHERE match_home_team = id_team)+(SELECT SUM(case when match_goal_home = match_goal_away then 1 else 0 end) FROM rod_match WHERE match_away_team = id_team) as d,
(SELECT SUM(case when match_goal_home < match_goal_away then 1 else 0 end) FROM rod_match WHERE match_home_team = id_team)+(SELECT SUM(case when match_goal_home > match_goal_away then 1 else 0 end) FROM rod_match WHERE match_away_team = id_team) as l,
(SELECT SUM(match_goal_home) FROM rod_match WHERE match_home_team = id_team) + (SELECT SUM(match_goal_away) FROM rod_match WHERE    match_away_team = id_team) AS GS,
(SELECT SUM(match_goal_home) FROM rod_match WHERE match_away_team = id_team) + (SELECT SUM(match_goal_away) FROM rod_match WHERE    match_home_team = id_team) AS Ga,
(SELECT SUM(match_goal_home) FROM rod_match WHERE match_home_team = id_team) + (SELECT SUM(match_goal_away) FROM rod_match WHERE    match_away_team = id_team)-(SELECT SUM(match_goal_home) FROM rod_match WHERE match_away_team = id_team) - (SELECT SUM(match_goal_away) FROM rod_match WHERE     match_home_team = id_team) as GDIFF,
((SELECT SUM(case when match_goal_home > match_goal_away then 1 else 0 end) FROM rod_match WHERE match_home_team = id_team)+(SELECT SUM(case when match_goal_home < match_goal_away then 1 else 0 end) FROM rod_match WHERE match_away_team = id_team))*3+((SELECT SUM(case when match_goal_home = match_goal_away then 1 else 0 end) FROM rod_match WHERE match_home_team = id_team)+(SELECT SUM(case when match_goal_home = match_goal_away then 1 else 0 end) FROM rod_match WHERE match_away_team = id_team)) AS PT
 
from rod_match
group by `match_home_team`
order by pt desc



и время выполнения в phpmyadmin 1,16 , что мне кажется слишком долго


Второй небольшой вопрос, как привязать к таблице ранжирование(столбик "место")?
...
Рейтинг: 0 / 0
Спортивный сайт
    #39323245
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте по соединению таблиц ХОТЬ ЧТО-НИБУДЬ! чтобы не писАть такой ужасающей [censored] и не удивляться потом, что оно еле шевелится...
...
Рейтинг: 0 / 0
Спортивный сайт
    #39323247
PBSchmeichel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

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

Таблицу показателей, которая в принципе статическая и меняется раз в год по заказу, нужно пересчитывать после каждого матча/тура и сохранять в отдельную таблицу БД. Ну и естественно выводить потом простейшим селектом. Не надо мучить сервер  MySQL
...
Рейтинг: 0 / 0
Спортивный сайт
    #39323309
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PBSchmeichelКак это хоть примерно должно выглядеть, применимо к моей ситуации?
Можете на простом примере показать?Для начала конвертируйте вербальную форму структуры во вменяемые DDLl таблиц.
Затем получите уже за этот этап пару горстей критики (потому что сейчас хранение данных организовано через одно место).
Измените структуру хранения в соответствии с этой критикой.
Затем сформулируйте задачу, включая наполнение таблиц и эталонный ответ.
Только после этого можно рассуждать о каком-то там запросе, решающем эту задачу, и его оптимальности.
...
Рейтинг: 0 / 0
Спортивный сайт
    #39323534
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

а чем плоха его структура? есть команды, есть турнир = команда + команда + инфо(счёт)
ну там по идее дата турнира ,есчё чего но то всё потом.

А как ты предлагаешь?
...
Рейтинг: 0 / 0
Спортивный сайт
    #39323847
PBSchmeichel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453,

Структуру сюда я выложил упрощенную, еще в нее входит Дата, время, судья, стадион.
...
Рейтинг: 0 / 0
Спортивный сайт
    #39324008
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453чем плоха его структура?У тебя в таблице:
PBSchmeichelкоманда1, команда 2в то время как у тебя нет таких сущностей, как Команда1 и Команда2. У тебя есть только сущность Команда. Тоже и по части забитых голов.
...
Рейтинг: 0 / 0
Спортивный сайт
    #39327916
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaalex564657498765453чем плоха его структура?У тебя в таблице:
PBSchmeichelкоманда1, команда 2в то время как у тебя нет таких сущностей, как Команда1 и Команда2. У тебя есть только сущность Команда. Тоже и по части забитых голов.

так а как ты предлагаешь?

типо Команды(айди-имя-....)
Игры(айди,дата, название ...)
Участие(айди_игры,айди_команды) - на одну игру две строчки .

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


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