ОБЛОМки футбольных новостей

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Структура базы данных

Сообщений 1 страница 30 из 54

1

Дань, можешь каким-нить структуратором сделать мне диаграммку твоей базы, а я тебе - своей сделаю :)

Отредактировано Sharoff (2011-10-09 03:01:24)

0

2

Sharoff написал(а):

Дань, можешь каким-нить структуратором сделать мне диаграммку твоей базы, а я тебе - своей сделаю :)

Давай-давай..) Ток я на ней как раз экспериментировал с составными первичными ключами, без особого успеха -)

0

3

http://dl.dropbox.com/u/5355357/Scheme.png

0

4

teams - команды
tournaments - реальные соревнования (Чемпионат Испании, Лига Чемпионов)
matches - матчи между командами в рамках определенного соревнования
championships - турниры прогнозистов
tournaments_championships - связь турнира прогнозистов с соревнованиями команд (откуда можно брать матчи)
rounds - туры турниров прогнозистов
schedules - программы туров турниров прогнозистов (матчи в привязке к турам)
gamers - список прогнозистов
forecasts - прогнозы прогнозистов

0

5

Sharoff
Гут! Это ты чем кстати схемку накидал?
У меня раза в полтора поболее буит а то и в два, там еще какая-то часть для командных прогнозов была.. -)

0

6

Sharoff написал(а):

Это MySQL Workbench. А ты возьми PowerDesigner - он и Oracle жуёт!

Постараюсь, если канеш базка вообще поднимется дома..))

0

7

Sharoff написал(а):

tournaments - реальные соревнования (Чемпионат Испании, Лига Чемпионов)

на самом деле тут не чемпионат испании получается, а чемпионат испании 2011/12, что вроде как пофиг, однако если охота будет посмотреть например кто лучше прогнозит испанию за период в 5 лет ничего не получится по-человечески без доработок..) то же и турниров прогнозистов касается. так что для последующего анализа можно выше еще сущности повыделять, ченить вроде "tournament_base" и "championship_base" и чемпионат Испании безотносительно года именно на этом уровне задавать, как и ФПЕЧ.
у меня вроде еще типы соревнований были - кубок, чемпионат, еще чето.. хотя это можно в доменный столбец вынести или вообще забить..)
потом, дело вкуса канеш, но я бы периоды всего соревнования тоже задавал а не только туров, а индикатор активности для других целей оставил (показывать или нет в основном интерфейсе например)
туры чемпионатов у меня тоже были, не только турниров прогнозистов. опять же - можно и без этого обойтись, однако для запросов потом туры могут понадобиться. я, правда, отталкивался в разработке не от ФПЕЧа а от турнира по ЧР, и там-то как раз это было более обосновано, а с ФПЕЧем получилось более громоздко и избыточно, да и странновато потому что понятно что на самом деле никакие фпечевские туры баварии с лионами не играют.. -)
потом, страны для команд я всетки бы ввел отдельным справочником, помните фпечевские номинации соответствующие?.. -)
пока наерна хватит.. )

0

8

Почти ко всему плюсуюсь! ;-)

0

9

Я ничего не забыл - вчера пришлось оракл восстанавливать дома + диаграммку нормально накидать не успел. как будет время = кину.. -)

из того, что я там видел вот что могу добавить -
отдельно есть сущности для списка команд соревнования и списка участников турнира прогнозистов чтобы их можно было удобоваримо выводить а не писать distinct.. ) с командами вроде тут есть, а вот участники напрямую никак с чемпионшипами не связаны..)
сущность "матч" у меня тоже по-другому сделана, часть инфы в главной записи как у тебя, а забитые голы каждой из команд отдельными записями лежат в дочерней сущности с признаком "дома"/"гости", однозначно сказать что это решение лучше чем твое не могу, явные плюсы и минусы есть у обеих реализаций.. -)

0

10

Мде, сегодня судя по всему опять никаких диаграмм не буит - на работе пока...

0

11

И я только приехал :')

0

12

http://dl.dropbox.com/u/5891402/SMD-FN.gif
http://dl.dropbox.com/u/5891402/SMD-FN.gif

собсна если выкинуть относящееся к командным турнирам то вот -)
как я уже писал ранее, базка экспериментальная, с составными первичными ключами, отсюда и некоторая избыточность по ключам - часть можно было смело не делать..

0

13

FNC_COUNTRIES - страны
FNC_TOWNS - города
FNC_TEAMS - команды
FNC_TOURNAMENTS - турниры команд
FNC_TOURNAMENT_TYPES - типы турниров команд
FNC_TRN_TMS_NODES - команды в турнире
FNC_TOURNAMENT_TOURS - туры в турнире команд
FNC_TOUR_MATCHES - матчи в туре турнира команд
FNC_TEAM_IN_MATCHES - команды в матче тура турнира команд)) результаты матчей прописываются здесь
FNC_PLAYERS - прогнозисты
FNC_FORECASTS - турниры прогнозистов
FNC_FORECAST_TYPES - типы турниров прогнозистов
FNC_FORECAST_GROUPS - стадии турнира прогнозистов
FN2_FRC_PLR_NODES - прогнозисты в турнире
FNС_FGR_PLR_NODES - прогнозисты в стадии турнира
FNC_FORECAST_TOURS - туры в турнире прогнозистов
FNC_FORECAST_MATCHES - матчи в туре турнира прогнозистов (те, которые нужно прогнозить, между командами!)
FNC_FORECAST_DUELS - матчи в туре турнира прогнозистов (между игроками!)
FNC_MATCH_FORECAST_LINKS - связь между матчем команд в турнире прогнозов и собственном турнире
FNC_TIM_PLAYER_FORECASTS - прогнозы игроков на матч команд

0

14

Если в двух словах то тут концепция несколько иная - такая базка позволяет даже безо всяких прогнозов вести статистику матчей чемпионатов команд и годна для последующего анализа и т.д.
Однако это заставляет придерживаться с виду избыточного ведения похожей инфы, но уже по прогнозам - те же туры, матчи, и прочее. Скажу следующее - я сразу на это заложился, а по ходу турнира по ЧР-2007 кажется (да-да!) возникали такие ситуации когда в программы включались перенесенные матчи из других туров - а тут вуаля, усё уже есть! -) Опять же если добросовестно тот же ФПЕЧ вести, то со стороны турниров должны быть чемпионаты стран, а со стороны прогнозов - уже сам ФПЕЧ, это очень хорошо видно на старых бориных страничках по КТ5.. -)
Конечно не все тут гут, было несколько спорных решений которые не особо себя оправдали, плюс некоторые недочеты обнаружились позднее и здесь не исправлены, в том числе и обсуждаемые мной в данной теме. Тем не менее вот -)

0

15

Огромный респект! Теперь есть пища для размышлений! Отпишусь чуть позднее.

0

16

Так, почитал, проанализировал. В целом концепцию понял, вижу много плюсов! Молоток! :)
Вопросы и замечания :)

0. Названия таблиц и полей для внешних ключей. Узнаю ораклиста :) Считаю, должны быть полными названиями, иначе с аббревиатурами задолбаемся сами.
1. Составные первичные и внешние ключи. Думаю, тебе не принципиально, считаю, нужны суррогатные.
2. Наличие кое-где дублирующей инфы. Например, ссылка с команды на страну. Нормализировать - так нормализировать :) Надо будет - вьюхи сделаем.
3. Поясни, что ты хранишь в типах турниров прогнозов и типах чемпионатов команд?
4. Главное замечание. Мне не понравилось, как сделана структура под хранение матчей, туров, результатов и прогнозов. Мне кажется, слишком сложно. По крайней мере - непрозрачно. Думаю, лучше эту часть взять от меня с небольшой модификацией.
5. Не понял, как учитываются стадии и насколько они нам нужны. Мне кажется на первом этапе от них можно было бы отказаться. Кстати, в стадиях номера туров лежат, ты видимо ссылки на них не нарисовал.
6. Из-за пункта 4 не понял, как связаны турниры команд и прогнозистов. Опосредованно через матчи в турах? Думаю, лучше сделать напрямую.

Планирую обобщить и выложить сюда обобщенную схемку :) Может, даже сегодня.

0

17

Sharoff написал(а):

0. Названия таблиц и полей для внешних ключей. Узнаю ораклиста :) Считаю, должны быть полными названиями, иначе с аббревиатурами задолбаемся сами.

В целом - не вопрос, в Оракле ограничение на наименование таблицы - 30 символов, как с этим в МайСкуле дело обстоит?
По названиям полей, особенно ключевых - это все из общей концепции следует и правил именования для возможности через словарь обычным SELECT-ом писать текст для создания вспомогательных объектов (первичные ключи, внешние ключи, индексы, триггера, чек-констрейнты и т.д.) и все это с тем же ограничением 30 символов - какбе поясняю откуда такое фпринципи.. -) Я не против более полных названий, единственное на мой взгляд предпочтительнее Tournament_ID а не tournamentID для бОльшей наглядности. Как кстати в майскуле обстоит дело с учетом регистра? Ораклу на него пофиг например..)

Sharoff написал(а):

1. Составные первичные и внешние ключи. Думаю, тебе не принципиально, считаю, нужны суррогатные.

Тут вообще без вопросов. Суррогатные PK должны быть в каждой таблице, правда иногда полезнее таблицам-классификаторам ввести еще и уникальный литеральный ключ и его же использовать в качестве FK в зависимых таблицах.

Sharoff написал(а):

2. Наличие кое-где дублирующей инфы. Например, ссылка с команды на страну. Нормализировать - так нормализировать :) Надо будет - вьюхи сделаем.

Гм, ну если ты про сам внешний ключ - то да, он там нафиг не нужен, достаточно составного вместе с городом из таблицы городов. А если про поле "страна"- дык его наличие в таблице команд есть следствие составного первичного ключа в таблице городов..)

Sharoff написал(а):

3. Поясни, что ты хранишь в типах турниров прогнозов и типах чемпионатов команд?

Посмотрю дома, кажется там чето типа чемпионат / кубок и все в таком духе..)

Sharoff написал(а):

4. Главное замечание. Мне не понравилось, как сделана структура под хранение матчей, туров, результатов и прогнозов. Мне кажется, слишком сложно. По крайней мере - непрозрачно. Думаю, лучше эту часть взять от меня с небольшой модификацией.

На этот вопрос отвечу чуток позжее, надо посмотреть повнимательнее на обе реализации. Единственное щас бегло заметил - тебе в схемку нужны порядковые номера туров (rounds) и матчей (schedules) иначе как маппить-то? )

Sharoff написал(а):

5. Не понял, как учитываются стадии и насколько они нам нужны. Мне кажется на первом этапе от них можно было бы отказаться. Кстати, в стадиях номера туров лежат, ты видимо ссылки на них не нарисовал.

Ну смотри, например сейчас в ЧР было 2 стадии - первые 19 туров первый этап, вторые 11 туров - второй этап, это и есть стадии. В 2007м году стадий вообще было 3 как минимум - было 12 человек, потом осталось 8, потом осталось 4 вообще и очки каждый раз заново считались с учетом ВСЕХ предыдущих встреч между собой..) Как учитываются напишу позднее, в банк надо бежать..)

Sharoff написал(а):

6. Из-за пункта 4 не понял, как связаны турниры команд и прогнозистов. Опосредованно через матчи в турах? Думаю, лучше сделать напрямую.

Да, лучше сделать напрямую. А также не забыть о том о чем мы говорили - о различии между Чемпионатом Испании и Чемпионатом Испании 2011|12 -)

Sharoff написал(а):

Планирую обобщить и выложить сюда обобщенную схемку :) Может, даже сегодня.

Будем ждать! -)

0

18

Trampler написал(а):

В целом - не вопрос, в Оракле ограничение на наименование таблицы - 30 символов, как с этим в МайСкуле дело обстоит?

Кажется, 255. Никогда не сталкивался, чтобы не хватало :) Про Оракл знаю :)

Trampler написал(а):

Я не против более полных названий, единственное на мой взгляд предпочтительнее Tournament_ID а не tournamentID для бОльшей наглядности.

Не возражаю! Так и будет!

Trampler написал(а):

Как кстати в майскуле обстоит дело с учетом регистра? Ораклу на него пофиг например..)

Вопрос настройки сервака. По умолчанию - пофик.

Trampler написал(а):

Тут вообще без вопросов. Суррогатные PK должны быть в каждой таблице, правда иногда полезнее таблицам-классификаторам ввести еще и уникальный литеральный ключ и его же использовать в качестве FK в зависимых таблицах.

Согласен!

Trampler написал(а):

Гм, ну если ты про сам внешний ключ - то да, он там нафиг не нужен, достаточно составного вместе с городом из таблицы городов. А если про поле "страна"- дык его наличие в таблице команд есть следствие составного первичного ключа в таблице городов..)

Да, это мой косяк, всё тут ок! :)

Trampler написал(а):

На этот вопрос отвечу чуток позжее, надо посмотреть повнимательнее на обе реализации. Единственное щас бегло заметил - тебе в схемку нужны порядковые номера туров (rounds) и матчей (schedules) иначе как маппить-то? )

Жду! Да, ты прав. Надо добавлять полюбе! И жду тогда про стадии!
Про разницу Чемпионата Испании и ЧИ 2011 / 2012 понял, подумаю!

0

19

отвечаю на твой вопрос по поводу типов турниров -
FNC_TOURNAMENT_TYPES
------------
CODE NAME
------------
CHAMP Чемпионат страны
COUP Кубок страны
EUROCOUP Еврокубок
------------

Надо сказать что в этой реализации он по сути не использовался, однако именно на базе этой таблицы я бы замутил расширение (пресловутый чемпионат Испании, а чемпионат Испании 11/12 отдал бы в TOURNAMENTS). И тогда аналоги TOURNAMENTS.IsInternational скорее сюда бы вынес отдельными столбцами.
Заодно добавлю по прогнозной части -
FNC_FORECAST_TYPES
------------
CODE NAME
------------
CHAMP Чемпионат индивидуальный
CREW Чемпионат командный
CUP Кубок индивидуальный
------------

Здесь абсолютно те же соображения

TOURNAMENTS <-> FNC_TOURNAMENTS
---------------------------------
TOURNAMENTS.link - ?
TOURNAMENTS.IsInternational -
а почему именно так? почему например не IsRussian? кмк тут больше имеет смысл ввести TOURNAMENT_TYPES
TOURNAMENTS.IsActive
вот это хорошо. если охота сделать более универсально то стоит сюда же кинуть startMonent, endMoment вместе или вместо.
FNC_TOURNAMENTS.CODE - кмк с учетом того что турнир по сути - классификатор можно вдобавок к суррогату литеральный код ввести. Разница в том что на код завязваться никто не запрещает, а вот завязываться на суррогатный айдишник - злобный хардкод что не есть гут..)
------------
CODE TRT_CODE NAME
------------
RPL2007 CHAMP Чемпионат России по футболу. Премьер-Лига. 2007 год.
EC0708 CHAMP Европейские чемпионаты 2007/08
EC0809 CHAMP Европейские чемпионаты 2008/09
------------

TEAMS <-> FNC_TEAMS
---------------------------------
FNC_TEAMS.CNT_CODE, TWN_CODE - по-хорошему конечно надо, хотя процесс добавления новой команды как бы сказал Леонид Викторович Слуцкий "принимает геморройный оборот", так что.. Тут все сводится к тому сможет ли кто-то выполнить объем работы для оператора чтобы все это ввести. Я бы добавил, честно.. )
FNC_TEAMS.herald_small, herald_big - это BLOBы хранящие соотвеццно большую и уменьшенную эмблему команды для более веселого вывода -) предлагаю также добавить но пока не заполнять т.к. надо буит загрузчик делать небольшой.
FNC_TEAMS.url_herald_small, url_herald_big - понятно думаю, чисто ссылка на графику как альтернатива тому что выше) понадобится если у нас всетки будет свой сервак под это дело.
------------
ID NAME CNT_CODE TWN_CODE
------------
119 Абердин SCO ABE
114 АЗ HOL ALK
88 Айнтрахт GER FNM
14 Амкар RUS PER
62 Арминия GER BIE
37 Арсенал ENG LND
31 Астон Вилла ENG BMG
69 Аталанта ITA BRG
80 Атлетик ESP BLB
53 Атлетико ESP MAD
106 Аякс HOL AMS
27 Бавария GER MNC
28 Байер GER LVK
97 Барселона ESP BRC
------------

CHAMPIONSHIPS <-> FNC_FORECASTS
---------------------------------
CHAMPIONSHIPS.IsActive - то же что и к TOURNAMENTS.IsActive
FNC_FORECASTS.FRT_CODE - опять же, по аналогии с типами турниров и чемпионатами испании, добавил бы такую ссылку чтобы разнести ФПЕЧ и ФПЕЧ 11/12.. =)
------------
CODE FRT_CODE NAME
------------
RPL2007 CHAMP Прогноз чемпионата России по футболу ' 2007
CS1RPL07 CREW Прогноз чемпионата России по футболу ' 2007
FPEC0708 CHAMP ФП Европейские чемпионаты 2007/08
CFPEC0708 CUP EFESS Кубок ФПЕЧ 2007/08
FPEC0809 CHAMP ФП Европейские чемпионаты 2008/09
------------

На сегодня наерна все, увы (

0

20

Вот кстати какая еще мысль касательно достоинств и недостатков.
В моем случае схема получается хотя и громоздкой, однако она содержит некоторые фичи, которые невооруженным глазом не заметны и отсутствуют в майскульном варианте.
1. В оракловом (моем) варианте есть возможность получить табличку как чемпионата так и турнира за любой произвольный промежуток туров - т.о. можно получить общую табличку, табличку первого круга, табличку текущей формы и т.д. что весьма весело и молодежно)) В твоем варианте этого пока сделать вообще нельзя, и если по прогнозному чемпионату достаточно просто ввести порядковый номер тура в табличку rounds, то такого понятия как "8й тур чемпионата России 2011/12" не существует вовсе. Понятно что это по большому счету бесплатный эддон, но функционал расширяет как ни крути -)
2. Есть понятие статуса матча в прогнозной программе, что позволяет правильно учитывать всякие нюансы типа к примеру внезапного переноса матча на 5 месяцев или вынужденного исключения матча из прогноза из-за того что он состоялся в тяпницу а в программе на тур значился в субботу и прочая ерунда. А вот статус прогноза участника определяется автоматически.

Да, чуть не забыл про форкаст-группы, вот так оно выглядит -
-------------------------------------------
CODE NAME DESCRIPTION FRC_CODE START_TOUR END_TOUR
-------------------------------------------
RPL2007A Группа А    RPL2007 23 27
RPL2007B Группа Б    RPL2007 23 27
RPL2007M Начальный этап    RPL2007 1 22
-------------------------------------------

в совокупности с таблицей привязки участников к этой группе а также учитывая описанное в п.1 это позволяет сделать табличку любого этапа турнира с любой группой участников -)

0

21

Trampler написал(а):

FNC_TOURNAMENT_TYPES------------CODE NAME------------CHAMP Чемпионат страныCOUP Кубок страныEUROCOUP Еврокубок------------Надо сказать что в этой реализации он по сути не использовался, однако именно на базе этой таблицы я бы замутил расширение (пресловутый чемпионат Испании, а чемпионат Испании 11/12 отдал бы в TOURNAMENTS).

Понял, будет такая табличка, только ИМХО нужно только сделать ее как таблицу базовых турниров. Разделение на кубок страны, еврокубок и.т.п. вынесу в другую.

Trampler написал(а):

FNC_FORECAST_TYPES

Здесь только будут не те значения, что ты указал, а именно базовые турниры прогнозистов (ФПЕЧ, ЧР, ЛЧ, ОЕ/ОЧМ).

Trampler написал(а):

TOURNAMENTS <-> FNC_TOURNAMENTS---------------------------------TOURNAMENTS.link - ?TOURNAMENTS.IsInternational - а почему именно так? почему например не IsRussian? кмк тут больше имеет смысл ввести TOURNAMENT_TYPESTOURNAMENTS.IsActiveвот это хорошо. если охота сделать более универсально то стоит сюда же кинуть startMonent, endMoment вместе или вместо.FNC_TOURNAMENTS.CODE - кмк с учетом того что турнир по сути - классификатор можно вдобавок к суррогату литеральный код ввести. Разница в том что на код завязваться никто не запрещает, а вот завязываться на суррогатный айдишник - злобный хардкод что не есть гут..)------------CODE TRT_CODE NAME------------RPL2007 CHAMP Чемпионат России по футболу. Премьер-Лига. 2007 год.EC0708 CHAMP Европейские чемпионаты 2007/08EC0809 CHAMP Европейские чемпионаты 2008/09

Согласен чуть более, чем полностью :) link - это url с результатами.

Trampler написал(а):

TEAMS <-> FNC_TEAMS---------------------------------FNC_TEAMS.CNT_CODE, TWN_CODE - по-хорошему конечно надо, хотя процесс добавления новой команды как бы сказал Леонид Викторович Слуцкий "принимает геморройный оборот", так что.. Тут все сводится к тому сможет ли кто-то выполнить объем работы для оператора чтобы все это ввести. Я бы добавил, честно.. )FNC_TEAMS.herald_small, herald_big - это BLOBы хранящие соотвеццно большую и уменьшенную эмблему команды для более веселого вывода -) предлагаю также добавить но пока не заполнять т.к. надо буит загрузчик делать небольшой.FNC_TEAMS.url_herald_small, url_herald_big - понятно думаю, чисто ссылка на графику как альтернатива тому что выше) понадобится если у нас всетки будет свой сервак под это дело.

Всё будет обязательно, кроме ссылки с команды на страну. Вытащить всегда можно через город. Если тебе понадобится - будет вьюха :)

Trampler написал(а):

CHAMPIONSHIPS <-> FNC_FORECASTS---------------------------------CHAMPIONSHIPS.IsActive - то же что и к TOURNAMENTS.IsActiveFNC_FORECASTS.FRT_CODE - опять же, по аналогии с типами турниров и чемпионатами испании, добавил бы такую ссылку чтобы разнести ФПЕЧ и ФПЕЧ 11/12.. =)

Согласен!

0

22

Sharoff написал(а):

Понял, будет такая табличка, только ИМХО нужно только сделать ее как таблицу базовых турниров. Разделение на кубок страны, еврокубок и.т.п. вынесу в другую.

Ну, можно конечно и отдельной табличкой, а можно и дешевле - доменным столбцом с чек-констрейнтом обойтись кмк в данном случАе - слишком мало значений и добавить особо нечего.. -)

0

23

Sharoff написал(а):

Здесь только будут не те значения, что ты указал

Да я просто палил что в базке моей лежит в качестве примера, это даже ни разу не образец того как должно быть -)

0

24

http://dl.dropbox.com/u/5355357/real_football.png

Даня, это я обобщил первую часть, по реальному футболированию :)
Завтра изображу в дизайнере уже вместе с прогнозами. А не за горами и третья часть - подсчет очкофф.
Всё, опаздываю на футбол, побежал играть!

0

25

Жду замечаний!

0

26

Связь между Countries и Base Tournament канеш гут, но надо как-то туда включить Интернациональные турниры типа Лиги Чемпионов. Это можно реализовать например через добавление иерархии в табличку Countries + типизацию записи там. Т.е. я бы предложил следующее:
"Млечный Путь" / Галактика
--> Солнечная система /Система планет
-----> Земля или Мир / Планета
---------> Европа / Континент
----------------> Россия / Страна
------------------------> Москва / Город

:D
Т.е. для Лиги Чемпионов в Base Tournament пойдет ссылка на Европу, для Чемпионата Испании - Испания, а для ЧМ-2018 - Мир -) Вот кстати еще такой аспект как прогнозирование матчей сборных тоже нужно предусмотреть. Что приведет еще к одной типизации, на этот раз в табличке TEAMS дабы отличать клубы от сборных.

Tournament Stages у меня смутно вызывает вопросы.. что это кстати? К примеру, если это как-то связано с предстоящим делением чемпа России на 2 восьмерки, то явно не хватает связи между ней и Tournaments, и особенно между ней и командами - ведь ясно, что инфы о 16 стартующих командах которая есть в team_tournaments вообще говоря недостаточно. Я бы рассматривал эту сущность тока как упорядоченное (возможно иерархическое) уточнение Tournaments, хотя она и нужна если есть желание всё охватить -)

+1

27

И ведь всё по делу! Спасибо!
Согласен, нужна таблица связей между base_tournaments & countries для ЛЧ.
В teams можно просто ввести поле типа tinyint is_international.
Stages - этапы турнира, например, первый круг или 1/64. Сделал, послушав тебя про всякого рода статистику :)
Думаю, лишних связей не нужно. Обойдемся матчами, дабы не усложнять. Как думаешь?
Я и рассматривал эту таблицу как уточнение tournaments для статистики.

0

28

Поясню про stages.
Да, это этапы чемпионатов / кубков и т.д.
Смотри - два варианта. Сделать таблицу, куда добавляются всевозможные стадии, а для каждого тура выбирается стадия, без привязки к чемпионатам. (Так сделано сейчас). Таким образом легко собрать всю статистику по стадиям, а а стадии - всего лишь уточнение для туров.
Другой вариант - сделать помимо таблицы всевозможных стадий еще и таблицу "Стадии - чемпионаты" и ссылку из туров делать на неё. В этом случае появляется прямая, а не косвенная возможность выбрать все стадии конкретного турнира. Но мне кажется, это уже слишком :) По крайней мере можно отложить до следующей версии.

0

29

Sharoff написал(а):

Поясню про stages.
Да, это этапы чемпионатов / кубков и т.д.
Смотри - два варианта. Сделать таблицу, куда добавляются всевозможные стадии, а для каждого тура выбирается стадия, без привязки к чемпионатам. (Так сделано сейчас). Таким образом легко собрать всю статистику по стадиям, а а стадии - всего лишь уточнение для туров.
Другой вариант - сделать помимо таблицы всевозможных стадий еще и таблицу "Стадии - чемпионаты" и ссылку из туров делать на неё. В этом случае появляется прямая, а не косвенная возможность выбрать все стадии конкретного турнира. Но мне кажется, это уже слишком :) По крайней мере можно отложить до следующей версии.

Тут у меня вот что есть возразить..)
Без конкретной привязки к турниру таблица стадий превратится мягко говоря в клубок, а если сказать более грубо, то в свалку, в которую записи будут добавляться по мере надобности, и привязка к tournament_rounds будет as is -) Потом, ты немного упустил мою мысль о том, что нужна привязка команд к конкретным стадиям если мы хотим выводить по этим стадиям нормальную инфу. Вот представь классический нетривиальный случай - турнир "Лига Чемпионов" -) Там стадий - уйма, причем на каждой стадии - свой формат матчей и свой набор команд, как например тогда получить табличку по группе D? -)  я так понимаю что ты решил не заморачиваться с этим а использовать Stages как тэг, но тогда нормальные выборки по ним мы делать не сможем, только самые тривиальные. Т.е. на мой взгляд важность этой сущности несколько приуменьшена, более того даже в наших обсуждениях пока полной ясности и понимания че же это такое нет, потому что вообще говоря сущности тут две - стадия и подгруппа команд, и они связаны между собой. Понимаю что это несколько усложняет весь процесс, но я бы все-таки продолжил копать в этом направлении - не столько даже для того чтобы можно было весело и молодежно показать таблички и результаты турниров команд, сколько для подобных маневров с соревнованиями прогнозистов, для которых нужно ровно то же самое, только вместо команд там будут выступать участники, вместо турниров - чемпионаты прогнозистов и т.п. Дабы потом не пришлось это дорабатывать на коленке или вообще отложить до лучших времен.. Понимаю что местами занудно, но такое уж IMHO))

0

30

Окей, замечания принимаются и будут учтены в следующем скриншоте :)

0