252 lines
7.8 KiB
SQL
252 lines
7.8 KiB
SQL
CREATE TABLE IF NOT EXISTS career (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
card_id INTEGER NOT NULL,
|
|
scenario_id INTEGER NOT NULL,
|
|
route_id INTEGER NOT NULL,
|
|
start_time TEXT NOT NULL,
|
|
end_time TEXT NOT NULL,
|
|
|
|
chara_grade INTEGER NOT NULL,
|
|
star_level INTEGER NOT NULL,
|
|
potential_level INTEGER NOT NULL,
|
|
|
|
speed INTEGER NOT NULL,
|
|
stamina INTEGER NOT NULL,
|
|
power INTEGER NOT NULL,
|
|
guts INTEGER NOT NULL,
|
|
wit INTEGER NOT NULL,
|
|
energy INTEGER NOT NULL,
|
|
max_speed INTEGER NOT NULL,
|
|
max_stamina INTEGER NOT NULL,
|
|
max_power INTEGER NOT NULL,
|
|
max_guts INTEGER NOT NULL,
|
|
max_wit INTEGER NOT NULL,
|
|
max_energy INTEGER NOT NULL,
|
|
skill_point INTEGER NOT NULL,
|
|
mood INTEGER NOT NULL,
|
|
|
|
turf INTEGER NOT NULL,
|
|
dirt INTEGER NOT NULL,
|
|
sprint INTEGER NOT NULL,
|
|
mile INTEGER NOT NULL,
|
|
medium INTEGER NOT NULL,
|
|
long INTEGER NOT NULL,
|
|
front_runner INTEGER NOT NULL,
|
|
pace_chaser INTEGER NOT NULL,
|
|
late_surger INTEGER NOT NULL,
|
|
end_closer INTEGER NOT NULL,
|
|
|
|
-- These fields are 0 if the career finished while it was not actively
|
|
-- displayed on the client used to dump it.
|
|
start_speed INTEGER NOT NULL,
|
|
start_stamina INTEGER NOT NULL,
|
|
start_power INTEGER NOT NULL,
|
|
start_guts INTEGER NOT NULL,
|
|
start_wit INTEGER NOT NULL,
|
|
start_max_speed INTEGER NOT NULL,
|
|
start_max_stamina INTEGER NOT NULL,
|
|
start_max_power INTEGER NOT NULL,
|
|
start_max_guts INTEGER NOT NULL,
|
|
start_max_wit INTEGER NOT NULL,
|
|
start_turf INTEGER NOT NULL,
|
|
start_dirt INTEGER NOT NULL,
|
|
start_sprint INTEGER NOT NULL,
|
|
start_mile INTEGER NOT NULL,
|
|
start_medium INTEGER NOT NULL,
|
|
start_long INTEGER NOT NULL,
|
|
start_front_runner INTEGER NOT NULL,
|
|
start_pace_chaser INTEGER NOT NULL,
|
|
start_late_surger INTEGER NOT NULL,
|
|
start_end_closer INTEGER NOT NULL,
|
|
|
|
fans INTEGER NOT NULL,
|
|
race_program_id INTEGER NOT NULL,
|
|
reserve_race_program_id INTEGER NOT NULL,
|
|
race_running_style INTEGER NOT NULL,
|
|
is_short_race INTEGER NOT NULL,
|
|
|
|
succession_trained_chara_id_1 INTEGER NOT NULL,
|
|
succession_trained_chara_id_2 INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id)
|
|
) STRICT;
|
|
CREATE INDEX IF NOT EXISTS career_by_scenario ON career (scenario_id);
|
|
CREATE INDEX IF NOT EXISTS career_by_start_time ON career (start_time);
|
|
|
|
CREATE TABLE IF NOT EXISTS condition (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
condition INTEGER NOT NULL,
|
|
is_active INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, condition),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS gain (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
source INTEGER NOT NULL, -- 0 for events, 1 for inspiration, otherwise support card id
|
|
|
|
gain_speed INTEGER NOT NULL,
|
|
gain_stamina INTEGER NOT NULL,
|
|
gain_power INTEGER NOT NULL,
|
|
gain_guts INTEGER NOT NULL,
|
|
gain_wit INTEGER NOT NULL,
|
|
gain_skill_point INTEGER NOT NULL,
|
|
|
|
gain_max_speed INTEGER NOT NULL,
|
|
gain_max_stamina INTEGER NOT NULL,
|
|
gain_max_power INTEGER NOT NULL,
|
|
gain_max_guts INTEGER NOT NULL,
|
|
gain_max_wit INTEGER NOT NULL,
|
|
|
|
gain_turf INTEGER NOT NULL,
|
|
gain_dirt INTEGER NOT NULL,
|
|
|
|
gain_sprint INTEGER NOT NULL,
|
|
gain_mile INTEGER NOT NULL,
|
|
gain_medium INTEGER NOT NULL,
|
|
gain_long INTEGER NOT NULL,
|
|
|
|
gain_front_runner INTEGER NOT NULL,
|
|
gain_pace_chaser INTEGER NOT NULL,
|
|
gain_late_surger INTEGER NOT NULL,
|
|
gain_end_closer INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, source),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
CREATE INDEX IF NOT EXISTS gain_by_source ON gain (source);
|
|
|
|
CREATE TABLE IF NOT EXISTS gain_skill_hint (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
source INTEGER NOT NULL,
|
|
|
|
group_id INTEGER NOT NULL,
|
|
rarity INTEGER NOT NULL,
|
|
level INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, source, group_id, rarity),
|
|
FOREIGN KEY (trainer_id, trained_chara_id, source) REFERENCES gain ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS inspiration (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
year INTEGER NOT NULL,
|
|
factor_id INTEGER NOT NULL,
|
|
level INTEGER NOT NULL, -- always 0 but just in case we get it in the future
|
|
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
CREATE INDEX IF NOT EXISTS inspiration_by_career ON inspiration (trainer_id, trained_chara_id);
|
|
CREATE INDEX IF NOT EXISTS inspiration_by_factor_id ON inspiration (factor_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS race_history (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
|
|
turn INTEGER NOT NULL,
|
|
program_id INTEGER NOT NULL,
|
|
weather INTEGER NOT NULL,
|
|
ground_condition INTEGER NOT NULL,
|
|
running_style INTEGER NOT NULL,
|
|
result_rank INTEGER NOT NULL,
|
|
frame_order INTEGER NOT NULL,
|
|
gained_fans INTEGER NOT NULL,
|
|
lose_tips_id INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, turn),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS race_reward (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
turn INTEGER NOT NULL,
|
|
|
|
item_type INTEGER NOT NULL,
|
|
item_id INTEGER NOT NULL,
|
|
item_num INTEGER NOT NULL,
|
|
|
|
is_bonus INTEGER NOT NULL,
|
|
is_plus_bonus INTEGER NOT NULL,
|
|
is_bonus_win INTEGER NOT NULL,
|
|
|
|
FOREIGN KEY (trainer_id, trained_chara_id, turn) REFERENCES race_history ON DELETE CASCADE
|
|
) STRICT;
|
|
CREATE INDEX IF NOT EXISTS race_reward_by_career_turn ON race_reward (trainer_id, trained_chara_id, turn);
|
|
CREATE INDEX IF NOT EXISTS race_reward_by_item ON race_reward (item_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS gain_skill (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
source INTEGER NOT NULL,
|
|
skill_id INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, source, skill_id),
|
|
FOREIGN KEY (trainer_id, trained_chara_id, source) REFERENCES gain ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS career_skill (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
skill_id INTEGER NOT NULL,
|
|
level INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, skill_id),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS career_skill_hint (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
|
|
group_id INTEGER NOT NULL,
|
|
rarity INTEGER NOT NULL,
|
|
level INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, group_id, rarity),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS career_support_card (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
position INTEGER NOT NULL,
|
|
support_card_id INTEGER NOT NULL,
|
|
limit_break_count INTEGER NOT NULL,
|
|
exp INTEGER NOT NULL,
|
|
owner_viewer_id INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, position),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE,
|
|
UNIQUE (trainer_id, trained_chara_id, support_card_id)
|
|
) STRICT;
|
|
CREATE INDEX IF NOT EXISTS career_support_card_by_card ON career_support_card (support_card_id, exp);
|
|
|
|
CREATE TABLE IF NOT EXISTS start_skill (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
skill_id INTEGER NOT NULL,
|
|
level INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, skill_id),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS start_skill_hint (
|
|
trainer_id INTEGER NOT NULL DEFAULT 0,
|
|
trained_chara_id INTEGER NOT NULL,
|
|
|
|
group_id INTEGER NOT NULL,
|
|
rarity INTEGER NOT NULL,
|
|
level INTEGER NOT NULL,
|
|
|
|
PRIMARY KEY (trainer_id, trained_chara_id, group_id, rarity),
|
|
FOREIGN KEY (trainer_id, trained_chara_id) REFERENCES career ON DELETE CASCADE
|
|
) STRICT;
|