Форум: "Потрепаться";
Текущий архив: 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
);
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.041 c