Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
}|{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
);


 
infom ©   (2004-09-17 15:01) [41]

MAN_OF_THE_MATCH  IDENTIFIER,
А это точно необходимо, мы ведь только на счет ставим, а игрок матча это сугубо личное, или нам придется пользоваться оценкой СЭкса и др.,
то это неправильно,я с ней не всегда бываю согласен.


 
}|{yk ©   (2004-09-17 15:03) [42]

ну можно создать домен NONIDENTIFIER, т.е.   MAN_OF_THE_MATCH и  REFERY_ID заполнять будет необязательно. На ЧЕ2004 MAN_OF_THE_MATCH выбирался голосами болельщиков


 
}|{yk ©   (2004-09-17 15:15) [43]

Скрипт создания базы
http://delphimaster.ru/football/Prognos.sql


 
}|{yk ©   (2004-09-17 15:52) [44]

Давайте пока напишем roadmap
Начало
http://delphimaster.ru/football/roadmap.html


 
}|{yk ©   (2004-09-17 18:25) [45]

Вобщем, если кто таки думает работать в этом проекте, свяжитесь со мно
Мой ICQ 252418251



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

Форум: "Потрепаться";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.034 c
14-1095312521
professor
2004-09-16 09:28
2004.10.03
Перебор паролей - это взлом?


14-1094804561
Shiza
2004-09-10 12:22
2004.10.03
Как починить справку в Delphi 5?


3-1094040311
zrv
2004-09-01 16:05
2004.10.03
Помогите составить запрос


14-1095322732
Kerk
2004-09-16 12:18
2004.10.03
gmail


1-1094993522
Riant
2004-09-12 16:52
2004.10.03
Hotkey in my app





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский