· 6 years ago · Aug 11, 2019, 08:44 AM
1CREATE TABLE IF NOT EXISTS Meowficer (
2 meowficer_id SMALLINT PRIMARY KEY,
3 skill_id SMALLINT UNIQUE NOT NULL,
4 -- Cut out irrelevant columns.
5);
6
7CREATE TABLE IF NOT EXISTS MeowficerName (
8 meowficer_id SMALLINT NOT NULL,
9 language TEXT NOT NULL,
10 name TEXT NOT NULL,
11
12 FOREIGN KEY(meowficer_id) REFERENCES Meowficer(meowficer_id)
13);
14
15CREATE TABLE IF NOT EXISTS MeowficerSkill (
16 skill_id SMALLINT PRIMARY KEY,
17 next_id SMALLINT NOT NULL,
18 level SMALLINT NOT NULL,
19 experience SMALLINT NOT NULL,
20 icon TEXT NOT NULL,
21
22 -- Only one Skill for every Mewoficer.
23 FOREIGN KEY(skill_id) REFERENCES Meowficer(skill_id)
24);
25
26CREATE TABLE IF NOT EXISTS MeowficerSkillNameDesc (
27 skill_id SMALLINT NOT NULL,
28 language TEXT NOT NULL,
29 skill_name TEXT NOT NULL,
30 skill_1 TEXT NOT NULL,
31 skill_2 TEXT NOT NULL,
32 skill_3 TEXT NOT NULL,
33
34 FOREIGN KEY (skill_id) REFERENCES MeowficerSkill(skill_id)
35);
36
37-- Cut out part of the column selecting from the Meowficer table.
38SELECT
39 Meowficer.id, Meowficer.skill_id, MeowficerName.name, ..., MeowficerSkill.icon, MeowficerSkillNameDesc.skill_name, MeowficerSkillNameDesc.skill_1, MeowficerSkillNameDesc.skill_2, MeowficerSkillNameDesc.skill_3
40FROM
41 Meowficer
42JOIN
43 MeowficerName ON Meowficer.id = MeowficerName.id AND MeowficerName.language = 'ja' AND MeowficerName.name = 'ジャスティス'
44JOIN
45 MeowficerSkill ON Meowficer.skill_id = MeowficerSkill.skill_id AND MeowficerSkill.level = 2
46JOIN
47 MeowficerSkillNameDesc ON MeowficerSkill.skill_id = MeowficerSkillNameDesc.skill_id AND MeowficerSkillNameDesc.language = 'ja'