У меня есть база данных, которая отслеживает скачки в Великобритании.
Раса содержит всю информацию для конкретной расы.
CREATE TABLE "race" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"date" TEXT NOT NULL,
"time" TEXT NOT NULL,
"name" TEXT NOT NULL,
"class" INTEGER NOT NULL,
"distance" INTEGER NOT NULL,
"extra" TEXT NOT NULL,
"going" TEXT NOT NULL,
"handicap" INTEGER NOT NULL,
"prize" REAL,
"purse" REAL,
"surface" TEXT NOT NULL,
"type" TEXT NOT NULL,
"course_id" INTEGER NOT NULL,
"betfair_path" TEXT NOT NULL UNIQUE,
"racingpost_id" INTEGER NOT NULL UNIQUE,
UNIQUE("betfair_path", "racingpost_id")
);
В гонке может быть много записей.
CREATE TABLE "entry" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"weight" INTEGER,
"allowance" INTEGER,
"horse_id" INTEGER NOT NULL,
"jockey_id" INTEGER,
"trainer_id" INTEGER,
"race_id" INTEGER NOT NULL,
UNIQUE("race_id", "horse_id")
);
Запись может иметь 0 или 1 бегуна. При этом учитываются не участвующие в забеге лошади, которые участвовали в гонке, но которые не смогли стартовать.
CREATE TABLE "runner" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"position" TEXT NOT NULL,
"beaten" INTEGER,
"isp" REAL NOT NULL,
"bsp" REAL,
"place" REAL,
"over_weight" INTEGER,
"entry_id" INTEGER NOT NULL UNIQUE
);
Мой вопрос
Действительно ли это лучший способ сохранить мои данные Entry vs Runner? Примечание. Входные данные всегда собираются за один раз, а бегунок (в основном результат) обнаруживается позже.
- Какой запрос мне понадобится, чтобы быстро найти общее количество записей и общее количество участников за определенную гонку.
- Как я могу легко сопоставить информацию бегуна с информацией о входе без множественного выбора?
Приносим извинения, если я упустил что-то очевидное, но теперь я не в себе от написания этого приложения.