Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Проект "Футбольный прогнозы"   Найти похожие ветки 

 
}|{yk ©   (2004-09-16 18:32) [0]

Таблицы БД

/***Domains                                 ***/

CREATE DOMAIN BOOLEAN AS
VARCHAR(1) CHARACTER SET WIN1251
CHECK (value in ("Y","N","U"))
COLLATE WIN1251_UA;

CREATE DOMAIN IDENTIFIER AS
INTEGER
NOT NULL;

CREATE DOMAIN NAME AS
VARCHAR(32) CHARACTER SET WIN1251
NOT NULL;

/***                                 Tables                                 ***/

CREATE TABLE ASSOTIATIONS (
   ASSOTIATIONS_ID     IDENTIFIER NOT NULL,
   ASSOTIATIONS_NAME   NAME NOT NULL,
   ASSOTIATIONS_SHORT  VARCHAR(10) CHARACTER SET WIN1251
);

CREATE TABLE CITIES (
   CITY_ID     IDENTIFIER NOT NULL,
   CITY_NAME   NAME NOT NULL,
   COUNTRY_ID  IDENTIFIER NOT NULL
);

CREATE TABLE CLUBS (
   CLUB_ID          IDENTIFIER NOT NULL,
   CLUB_NAME        NAME NOT NULL,
   CLUB_NAME_SHORT  VARCHAR(10) CHARACTER SET WIN1251 NOT NULL,
   CITY_ID          IDENTIFIER,
   IS_TEAM          BOOLEAN DEFAULT "N"
);

CREATE TABLE COUNTRY (
   COUNTRY_ID    IDENTIFIER NOT NULL,
   COUNTRY_NAME  NAME NOT NULL,
   FA_NAME       NAME NOT NULL,
   ASSOC_ID      IDENTIFIER NOT NULL
);

CREATE TABLE MATCHES (
   MATCH_ID          IDENTIFIER NOT NULL,
   CLUB_ID_1         IDENTIFIER NOT NULL,
   CLUB_ID_2         IDENTIFIER NOT NULL,
   TOURNAMENT_ID     IDENTIFIER,
   STADIA_ID         IDENTIFIER,
   RESULT            VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0" NOT NULL,
   RESULT_HALF       VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0" NOT NULL,
   PENALTY           VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0",
   MAN_OF_THE_MATCH  IDENTIFIER,
   REFERY_ID         IDENTIFIER,
   MATCH_DATE        TIMESTAMP,
   STOP_PROGNOSING   BOOLEAN DEFAULT "N" COLLATE WIN1251_UA
);

CREATE TABLE PLAYERS (
   PLAYER_ID     IDENTIFIER NOT NULL,
   PLAYER_NAME   VARCHAR(82) CHARACTER SET WIN1251,
   CLUB_ID       IDENTIFIER,
   TEAM_ID       IDENTIFIER,
   PLAYER_ABOUT  BLOB SUB_TYPE 1 SEGMENT SIZE 80
);

CREATE TABLE PROGNOS (
   MATCH_ID          IDENTIFIER NOT NULL,
   PROGNOSIST_ID     IDENTIFIER NOT NULL,
   RESULT            VARCHAR(5) CHARACTER SET WIN1251 NOT NULL,
   RESULT_HALF_TIME  VARCHAR(5) CHARACTER SET WIN1251,
   MAN_OF_THE_MATCH  IDENTIFIER
);

CREATE TABLE PROGNOSISTS (
   PROGNOSISTS_ID          IDENTIFIER NOT NULL,
   PROGNOSISTS_NAME        NAME NOT NULL,
   PROGNOSISTS_REALNAME    VARCHAR(82) CHARACTER SET WIN1251,
   PROGNOSISTS_BIRTHDAY    DATE,
   PROGNOSISTS_COUNTRY_ID  IDENTIFIER,
   PROGNOSISTS_EMAIL       VARCHAR(40) CHARACTER SET WIN1251,
   PROGNOSISTS_PASSWORD    VARCHAR(32) CHARACTER SET WIN1251 NOT NULL
);

CREATE TABLE REFERIES (
   REFERIES_ID  IDENTIFIER NOT NULL,
   REFERI_NAME  VARCHAR(82) CHARACTER SET WIN1251 NOT NULL,
   COUNTRY_ID   IDENTIFIER
);

CREATE TABLE STADIA (
   STADIA_ID    IDENTIFIER NOT NULL,
   STADIA_NAME  NAME NOT NULL
);

CREATE TABLE TOURNAMENTS (
   TOUR_ID     IDENTIFIER NOT NULL,
   TOUR_NAME   NAME NOT NULL,
   COMMERCIAL  BOOLEAN DEFAULT "N" NOT NULL,
   ASSOC_ID    IDENTIFIER NOT NULL,
   FA_ID       IDENTIFIER
);


 
}|{yk ©   (2004-09-16 18:33) [1]

Связи


/******************************************************************************/
/***                           Unique Constraints                           ***/
/******************************************************************************/

ALTER TABLE CLUBS ADD CONSTRAINT UNQ_CLUBS UNIQUE (CITY_ID, CLUB_NAME_SHORT);
ALTER TABLE COUNTRY ADD CONSTRAINT UNQ_COUNTRY UNIQUE (COUNTRY_NAME);
ALTER TABLE PLAYERS ADD CONSTRAINT UNQ_PLAYERS UNIQUE (PLAYER_NAME);
ALTER TABLE PROGNOSISTS ADD CONSTRAINT UNQ_PROGNOSISTS UNIQUE (PROGNOSISTS_NAME);

/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE ASSOTIATIONS ADD CONSTRAINT PK_ASSOTIATIONS PRIMARY KEY (ASSOTIATIONS_ID);
ALTER TABLE CITIES ADD CONSTRAINT PK_CITIES PRIMARY KEY (CITY_ID);
ALTER TABLE CLUBS ADD CONSTRAINT PK_CLUBS PRIMARY KEY (CLUB_ID);
ALTER TABLE COUNTRY ADD CONSTRAINT PK_COUNTRY PRIMARY KEY (COUNTRY_ID);
ALTER TABLE MATCHES ADD CONSTRAINT PK_MATCHES PRIMARY KEY (MATCH_ID);
ALTER TABLE PLAYERS ADD CONSTRAINT PK_PLAYERS PRIMARY KEY (PLAYER_ID);
ALTER TABLE PROGNOS ADD CONSTRAINT PK_PROGNOS PRIMARY KEY (MATCH_ID, PROGNOSIST_ID);
ALTER TABLE PROGNOSISTS ADD CONSTRAINT PK_PROGNOSISTS PRIMARY KEY (PROGNOSISTS_ID);
ALTER TABLE REFERIES ADD CONSTRAINT PK_REFERIES PRIMARY KEY (REFERIES_ID);
ALTER TABLE STADIA ADD CONSTRAINT PK_STADIA PRIMARY KEY (STADIA_ID);
ALTER TABLE TOURNAMENTS ADD CONSTRAINT PK_TOURNAMENTS PRIMARY KEY (TOUR_ID);

/******************************************************************************/
/***                              Foreign Keys                              ***/
/******************************************************************************/

ALTER TABLE CLUBS ADD CONSTRAINT FK_CLUBS FOREIGN KEY (CITY_ID) REFERENCES CITIES (CITY_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE COUNTRY ADD CONSTRAINT FK_COUNTRY FOREIGN KEY (ASSOC_ID) REFERENCES ASSOTIATIONS (ASSOTIATIONS_ID) ON DELETE SET DEFAULT ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_CLUB1 FOREIGN KEY (CLUB_ID_1) REFERENCES CLUBS (CLUB_ID) ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_CLUB2 FOREIGN KEY (CLUB_ID_2) REFERENCES CLUBS (CLUB_ID) ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_PLAYER FOREIGN KEY (MAN_OF_THE_MATCH) REFERENCES PLAYERS (PLAYER_ID) ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_REFERI FOREIGN KEY (REFERY_ID) REFERENCES REFERIES (REFERIES_ID) ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_STADIA FOREIGN KEY (STADIA_ID) REFERENCES STADIA (STADIA_ID) ON UPDATE CASCADE;
ALTER TABLE MATCHES ADD CONSTRAINT FK_MATCHES_TOURN FOREIGN KEY (TOURNAMENT_ID) REFERENCES TOURNAMENTS (TOUR_ID) ON UPDATE CASCADE;
ALTER TABLE PLAYERS ADD CONSTRAINT FK_PLAYERS_CLUB FOREIGN KEY (CLUB_ID) REFERENCES CLUBS (CLUB_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE PLAYERS ADD CONSTRAINT FK_PLAYERS_TEAM FOREIGN KEY (TEAM_ID) REFERENCES CLUBS (CLUB_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE PROGNOS ADD CONSTRAINT FK_PROGNOS FOREIGN KEY (MAN_OF_THE_MATCH) REFERENCES PLAYERS (PLAYER_ID) ON UPDATE CASCADE;
ALTER TABLE PROGNOS ADD CONSTRAINT FK_PROGNOS_MATCH FOREIGN KEY (MATCH_ID) REFERENCES MATCHES (MATCH_ID) ON UPDATE CASCADE;
ALTER TABLE PROGNOS ADD CONSTRAINT FK_PROGNOS_PROGNOSISTS FOREIGN KEY (PROGNOSIST_ID) REFERENCES PROGNOSISTS (PROGNOSISTS_ID) ON UPDATE CASCADE;
ALTER TABLE PROGNOSISTS ADD CONSTRAINT FK_PROGNOSISTS FOREIGN KEY (PROGNOSISTS_COUNTRY_ID) REFERENCES COUNTRY (COUNTRY_ID) ON UPDATE CASCADE;
ALTER TABLE REFERIES ADD CONSTRAINT FK_REFERIES FOREIGN KEY (COUNTRY_ID) REFERENCES COUNTRY (COUNTRY_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE TOURNAMENTS ADD CONSTRAINT FK_TOURNAMENTS FOREIGN KEY (ASSOC_ID) REFERENCES ASSOTIATIONS (ASSOTIATIONS_ID) ON DELETE SET DEFAULT ON UPDATE CASCADE;
ALTER TABLE TOURNAMENTS ADD CONSTRAINT FK_TOURNAMENTS2 FOREIGN KEY (FA_ID) REFERENCES COUNTRY (COUNTRY_ID) ON DELETE SET NULL ON UPDATE CASCADE;

/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/

CREATE INDEX PROGNOSISTS_IDX1 ON PROGNOSISTS (PROGNOSISTS_BIRTHDAY);


 
}|{yk ©   (2004-09-16 18:34) [2]

Триггеры и генераторы


/******************************************************************************/
/***                               Generators                               ***/
/******************************************************************************/

CREATE GENERATOR GEN_ASSOTIATIONS_ID;
CREATE GENERATOR GEN_CITIES_ID;
CREATE GENERATOR GEN_CLUBS_ID;
CREATE GENERATOR GEN_COUNTRY_ID;
CREATE GENERATOR GEN_MATCHES_ID;
CREATE GENERATOR GEN_PLAYERS_ID;
CREATE GENERATOR GEN_PROGNOSISTS_ID;
CREATE GENERATOR GEN_REFERIES_ID;
CREATE GENERATOR GEN_STADIA_ID;
CREATE GENERATOR GEN_TOURNAMENTS_ID;

/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/

SET TERM ^ ;

/* Trigger: ASSOTIATIONS_BI */
CREATE TRIGGER ASSOTIATIONS_BI FOR ASSOTIATIONS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.ASSOTIATIONS_ID IS NULL) THEN
   NEW.ASSOTIATIONS_ID = GEN_ID(GEN_ASSOTIATIONS_ID,1);
END
^

/* Trigger: CITIES_BI */
CREATE TRIGGER CITIES_BI FOR CITIES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.CITY_ID IS NULL) THEN
   NEW.CITY_ID = GEN_ID(GEN_CITIES_ID,1);
END
^

/* Trigger: CLUBS_BI */
CREATE TRIGGER CLUBS_BI FOR CLUBS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.CLUB_ID IS NULL) THEN
   NEW.CLUB_ID = GEN_ID(GEN_CLUBS_ID,1);
END
^

/* Trigger: COUNTRY_BI */
CREATE TRIGGER COUNTRY_BI FOR COUNTRY
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.COUNTRY_ID IS NULL) THEN
   NEW.COUNTRY_ID = GEN_ID(GEN_COUNTRY_ID,1);
END
^

/* Trigger: MATCHES_BI */
CREATE TRIGGER MATCHES_BI FOR MATCHES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.MATCH_ID IS NULL) THEN
   NEW.MATCH_ID = GEN_ID(GEN_MATCHES_ID,1);
END
^

/* Trigger: PLAYERS_BI */
CREATE TRIGGER PLAYERS_BI FOR PLAYERS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.PLAYER_ID IS NULL) THEN
   NEW.PLAYER_ID = GEN_ID(GEN_PLAYERS_ID,1);
END
^

/* Trigger: PROGNOSISTS_BI */
CREATE TRIGGER PROGNOSISTS_BI FOR PROGNOSISTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.PROGNOSISTS_ID IS NULL) THEN
   NEW.PROGNOSISTS_ID = GEN_ID(GEN_PROGNOSISTS_ID,1);
END
^

/* Trigger: REFERIES_BI */
CREATE TRIGGER REFERIES_BI FOR REFERIES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.REFERIES_ID IS NULL) THEN
   NEW.REFERIES_ID = GEN_ID(GEN_REFERIES_ID,1);
END
^

/* Trigger: STADIA_BI */
CREATE TRIGGER STADIA_BI FOR STADIA
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.STADIA_ID IS NULL) THEN
   NEW.STADIA_ID = GEN_ID(GEN_STADIA_ID,1);
END
^

/* Trigger: TOURNAMENTS_BI */
CREATE TRIGGER TOURNAMENTS_BI FOR TOURNAMENTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.TOUR_ID IS NULL) THEN
   NEW.TOUR_ID = GEN_ID(GEN_TOURNAMENTS_ID,1);
END
^

SET TERM ; ^


 
}|{yk ©   (2004-09-16 19:12) [3]

Так, народ, кто желает участвовать в проекте?


 
pasha_golub ©   (2004-09-16 19:18) [4]

Нихрена себе!!!


 
GanibalLector ©   (2004-09-16 19:46) [5]

Ну я ,предположим...И что дальше???


 
}|{yk ©   (2004-09-16 19:55) [6]

Дальше - обсуждаем БД.
Кроме того нужно наполнить таблицы городов, игроков, рефери. Никто не поделится


 
}|{yk ©   (2004-09-17 11:02) [7]

Так чего молчим, поговорили и всё?


 
Игорь Шевченко ©   (2004-09-17 11:03) [8]


> CREATE DOMAIN BOOLEAN AS
> VARCHAR(1) CHARACTER SET WIN1251
> CHECK (value in ("Y","N","U"))


Сильно.


 
Игорь Шевченко ©   (2004-09-17 11:04) [9]


> CREATE DOMAIN NAME AS
> VARCHAR(32) CHARACTER SET WIN1251
> NOT NULL;


> CREATE TABLE ASSOTIATIONS (
>    ASSOTIATIONS_ID     IDENTIFIER NOT NULL,
>    ASSOTIATIONS_NAME   NAME NOT NULL,
>    ASSOTIATIONS_SHORT  VARCHAR(10) CHARACTER SET WIN1251
> );
>
> CREATE TABLE CITIES (
>    CITY_ID     IDENTIFIER NOT NULL,
>    CITY_NAME   NAME NOT NULL,
>    COUNTRY_ID  IDENTIFIER NOT NULL
> );


Сильно.


 
}|{yk ©   (2004-09-17 11:16) [10]

А что тут неправильного?


 
Mystic ©   (2004-09-17 11:32) [11]

Я бы ограничился следующими таблицами (для начала):

CREATE TABLE EVENT(
 ID INT NOT NULL,
 NAME VARCHAR(30),
 DATE DATETIME,
 GOAL1 INTEGER,
 GOAL2 INTEGER,
 PRIMARY KRY(ID)
);

CREATE TABLE PLAYER(
 ID INT NOT NULL,
 NAME VARCHAR(30),
 SCORE INTEGER,
 PRIMARY KEY(ID)
);

CREATE TABLE PROGNOSIS(
 PLAYER_ID INTEGER,
 EVENT_ID INTEGER,
 DATE DATETIME,
 GOAL1 INTEGER,
 GOAL2 INTEGER,
 PRIMARY KEY(PLAYER_ID, EVENT_ID)
);

ALTER TABLE PROGNOSIS
 ADD CONSTRAINT FK_PROGNOSIS_PLAYER
 FOREIGN KEY(PLAYER_ID) REFERENCES PLAYER;

ALTER TABLE PROGNOSIS
 ADD CONSTRAINT FK_PROGNOSIS_EVENT
 FOREIGN KEY(EVENTR_ID) REFERENCES EVENT;


и то, насчет даты вопрос спорный... Потому что структуру, предложеная }|{yk ©   (16.09.04 18:32) , мне бя просто было обломно заполнять, а практической пользы от этого лично я не вижу.


 
Игорь Шевченко ©   (2004-09-17 11:35) [12]

}|{yk ©   (17.09.04 11:16) [10]


> А что тут неправильного?


Я бы не стал делать тип Boolean с тремя значениями.
Я бы не стал два раза повторять NOT NULL, если объявлено в атрибутах домена.


> Проект "Футбольный прогнозы"


Британская энциклопудия.


 
}|{yk ©   (2004-09-17 11:37) [13]

Ну так таблицы
ASSOTIATIONS,CITIES,CLUBS,COUNTRY,STADIA и  TOURNAMENTS заполняются 1 раз и дальше практически не меняются
Таблицы PLAYERS и REFERIES  могут не заполняться, это для будущего
Так что остается для частых изменений
MATCHES, PLAYERS, PROGNOS


 
}|{yk ©   (2004-09-17 11:37) [14]

>Я бы не стал делать тип Boolean с тремя значениями.
А Борланд сделал


 
Игорь Шевченко ©   (2004-09-17 11:42) [15]


> А Борланд сделал


??????????? Где ??????????


 
}|{yk ©   (2004-09-17 11:44) [16]

В Interbase 7 тип boolean имеет три варианта true, false, unknown


 
VMcL ©   (2004-09-17 11:44) [17]

>>}|{yk ©  (17.09.04 11:37) [14]

Наверное, такой булевый тип сделала женщина: "Да", "Нет", "Может быть"...

>>Игорь Шевченко ©  (17.09.04 11:03) [8]

Дык, если не ошибаюсь, BOOLEAN это фактически шо-то типа TINY(1).


 
}|{yk ©   (2004-09-17 11:47) [18]

Читайте справку по IBase 7


 
Skyle ©   (2004-09-17 11:49) [19]


> А Борланд сделал


> В Interbase 7 тип boolean имеет три варианта true, false,
> unknown

Боюсь, это заслуга нисколько не Борланда...
И о типе Boolean в контексте значения Unknown я бы не говорил.

P.S. Это всё сказано из расчёта, что значение Unknown эквивалентно значению NULL, то есть "не определено".


 
Игорь Шевченко ©   (2004-09-17 12:02) [20]

}|{yk ©   (17.09.04 11:47) [18]


> Читайте справку по IBase 7


Не знал. Ввиду отсутствия IBase 7


 
}|{yk ©   (2004-09-17 12:02) [21]

Boolean Data Type

InterBase 7 supports a SQL 99 compliant Boolean data type. The Boolean type is implemented as a 16 bit integer and can have one of three values; True, False or Unknown. Unknown indicates that the Boolean field is null.


 
Игорь Шевченко ©   (2004-09-17 12:04) [22]


> Unknown indicates that the Boolean field is null.


В таком случае твой тип объявлен, как имеющий 4 значения.


 
}|{yk ©   (2004-09-17 12:06) [23]

Если он объявлен как not null то три в любом случае


 
}|{yk ©   (2004-09-17 12:23) [24]

Это сделано для того, чтобы не применять COALESCE в запросах


 
Игорь Шевченко ©   (2004-09-17 12:23) [25]


> CREATE DOMAIN BOOLEAN AS
> VARCHAR(1) CHARACTER SET WIN1251
> CHECK (value in ("Y","N","U"))
> COLLATE WIN1251_UA;


>    IS_TEAM          BOOLEAN DEFAULT "N"


>    STOP_PROGNOSING   BOOLEAN DEFAULT "N" COLLATE WIN1251_UA


Какой смысл упираться-то ?


 
}|{yk ©   (2004-09-17 12:27) [26]

Ладно, это мелочи. "U" предназначен для матчей, например как Рома - Динамо, в которых результат неопределён


 
infom ©   (2004-09-17 12:40) [27]

так что от нас требуется конкретно ?


 
GRAND25 ©   (2004-09-17 13:14) [28]

Вижу, по самой постановке и требованиям к будущей программе разногласий хватает, а к проектированию БД уже перешли... Собственно, не перешли, а с него начали.


 
}|{yk ©   (2004-09-17 13:16) [29]

Сейчас нужно
1. Найти список клубов
2. Найти список городов
3. Все турниры, которые могут быть интересны
4. Если есть - списки игроков, рефери

Список стран есть


 
}|{yk ©   (2004-09-17 13:18) [30]

Данная структура подходит не только для ведения прогнозов, но и для ведения футбольной статистики вообще


 
GRAND25 ©   (2004-09-17 13:25) [31]


> 1. Найти список клубов


Я ввожу клубы по мере необходимости. Набить 32 команды, участвующие в ЛЧ, труда не составляет.


> 2. Найти список городов


Города, которым принадлежат команды, ввожу по памяти, но пока что это используется мало - для заполнения списка команд, которые будут участвовать в том или ином турнире и их однозначной идентификации.


> 3. Все турниры, которые могут быть интересны


Также по мере возникновения. Стартовала Лига Чемпионов - так и пишу "Ллига Чемпионов 2004/2005", а датасет COMPETITIONS является мастером для всей остальной иерархии.


> 4. Если есть - списки игроков, рефери


Никакой необходимости не вижу. Для прогнозов, конечно.


> Данная структура подходит не только для ведения прогнозов,
> но и для ведения футбольной статистики вообще


А вот ведение футбольной статистики - задача совсем другого порядка сложности. Можно ли предусмотреть структуру, которая будет подходить под любую схему проведения турнира? Когда-то я чесал репу над этим, но забросил и сейчас пока необходимости вернуться к этому вопросу у меня нет. Прогнозы обрабатываются - и хватит.


 
Mystic ©   (2004-09-17 13:26) [32]

Сейчас нужно
1. Найти список клубов
2. Найти список городов
3. Все турниры, которые могут быть интересны
4. Если есть - списки игроков, рефери

Список стран есть


А зачем? Для ведения прогноза достаточно строкой написать в названии события "Динамо - Локомотив". И все. Я вообще удивляюсь, что ты в базе не предусмотрел BLOB-а, куда можно было положить видеозапись игры.

К тому же, тебе интереснее футбол, а посетители форума захотят делать ставки, например, на шахматные турниры, или НХЛ. Кто знает, куда это все повернется?


 
}|{yk ©   (2004-09-17 13:27) [33]

Для прогнозов список игроков может понадобится. Например, забъет ли Шевченко Шахтёру или Воронин Динамо? Судьи... Ну это может пригодиться


 
}|{yk ©   (2004-09-17 13:28) [34]

>посетители форума захотят делать ставки, например, на шахматные турниры

ОК, добавляем таблицу виды спорта


 
TohaNik ©   (2004-09-17 13:30) [35]

>Данная структура подходит не только для ведения прогнозов, но и для ведения футбольной статистики вообще

Ну тогда проект переименовать надо например в "История мирового футбола", назначить ответственного кто будет ослеживать все переходы,уходы на пенсию,появление новых игроков(тренеров,судей)-
ох и упарится же он:)


 
GRAND25 ©   (2004-09-17 13:31) [36]


> Для прогнозов список игроков может понадобится. Например,
> забъет ли Шевченко Шахтёру или Воронин Динамо? Судьи...
> Ну это может пригодиться


Над этими вопросами пускай букмейкерские конторы чешут репы. У нас прогнозы простые: на резалт матча или выход той или иной команды в следующую стадию турнира.


> достаточно строкой написать в названии события "Динамо -
> Локомотив".


Нет, строкой не надо. У меня из списка команды в матчи сами по дабл-клику перескакивают.


 
Mystic ©   (2004-09-17 13:32) [37]

Я просто предлагаю начать по минимуму, а все, что "может пригодиться" --- выкидывать. Для автоматизации текущего состояния достаточно трех таблиц. Зачем плодить больше?


 
}|{yk ©   (2004-09-17 13:34) [38]

Проще сделать на будущее неиспользуемые таблицы, чем потом добавлять


 
TohaNik ©   (2004-09-17 13:35) [39]

Вот что лень делать так парсинг текста из готовой заготовки, например из ветки форума, чтоб результаты участников не набивать руками


 
}|{yk ©   (2004-09-17 13:50) [40]

Думаю обсуждать справочники нет смысла. Обсудим оперативные

CREATE TABLE MATCHES (
  MATCH_ID          IDENTIFIER NOT NULL,
  CLUB_ID_1         IDENTIFIER NOT NULL,
  CLUB_ID_2         IDENTIFIER NOT NULL,
  TOURNAMENT_ID     IDENTIFIER,
  STADIA_ID         IDENTIFIER,
  RESULT            VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0" NOT NULL,
  RESULT_HALF       VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0" NOT NULL,
  PENALTY           VARCHAR(5) CHARACTER SET WIN1251 DEFAULT "0-0",
  MAN_OF_THE_MATCH  IDENTIFIER,
  REFERY_ID         IDENTIFIER,
  MATCH_DATE        TIMESTAMP,
  STOP_PROGNOSING   BOOLEAN DEFAULT "N" COLLATE WIN1251_UA
);



Страницы: 1 2 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.047 c
1-1095425060
HollowMan
2004-09-17 16:44
2004.10.03
Как сделать шестнадцатиричное присвоение переменных byte:=$string


9-1086760482
*John*1987*
2004-06-09 09:54
2004.10.03
Delphix для Delphi6


14-1095236857
yanval
2004-09-15 12:27
2004.10.03
вопрос по iis - помогите


4-1093524576
SH@RK
2004-08-26 16:49
2004.10.03
Как узнать Caption активного окна, а также имя его exe ка ?


1-1095691730
hamster
2004-09-20 18:48
2004.10.03
Указатель