protected override void CreateTable()
{
using (var rCommand = r_Connection.CreateCommand())
{
rCommand.CommandText = "CREATE TABLE IF NOT EXISTS battle(" +
"id INTEGER PRIMARY KEY NOT NULL, " +
"first BLOB NOT NULL, " +
"second BLOB, " +
"result BLOB);" +
"CREATE TABLE IF NOT EXISTS participant_fleet_name(" +
"id INTEGER PRIMARY KEY, " +
"name TEXT NOT NULL);" +
"CREATE TABLE IF NOT EXISTS participant_fleet(" +
"battle INTEGER NOT NULL REFERENCES battle(id), " +
"id INTEGER NOT NULL, " +
"name INTEGER NOT NULL REFERENCES participant_fleet_name(id), " +
"PRIMARY KEY(battle, id)) WITHOUT ROWID;" +
"CREATE TABLE IF NOT EXISTS participant(" +
"battle INTEGER NOT NULL REFERENCES battle(id), " +
"id INTEGER NOT NULL, " +
"ship INTEGER NOT NULL, " +
"level INTEGER NOT NULL, " +
"condition INTEGER NOT NULL, " +
"fuel INTEGER NOT NULL, " +
"bullet INTEGER NOT NULL, " +
"firepower INTEGER NOT NULL, " +
"torpedo INTEGER NOT NULL, " +
"aa INTEGER NOT NULL, " +
"armor INTEGER NOT NULL, " +
"evasion INTEGER NOT NULL, " +
"asw INTEGER NOT NULL, " +
"los INTEGER NOT NULL, " +
"luck INTEGER NOT NULL, " +
"range INTEGER NOT NULL, " +
"PRIMARY KEY(battle, id)) WITHOUT ROWID;" +
"CREATE TABLE IF NOT EXISTS participant_slot(" +
"battle INTEGER NOT NULL REFERENCES battle(id), " +
"participant INTEGER NOT NULL, " +
"id INTEGER NOT NULL, " +
"equipment INTEGER NOT NULL, " +
"level INTEGER NOT NULL, " +
"plane_count INTEGER NOT NULL, " +
"PRIMARY KEY(battle, participant, id), " +
"FOREIGN KEY(battle, participant) REFERENCES participant(battle, id)) WITHOUT ROWID;" +
"CREATE TABLE IF NOT EXISTS participant_heavily_damaged(" +
"battle INTEGER NOT NULL REFERENCES battle(id), " +
"id INTEGER NOT NULL, " +
"PRIMARY KEY(battle, id), " +
"FOREIGN KEY(battle, id) REFERENCES participant(battle, id)) WITHOUT ROWID;" +
"CREATE TABLE IF NOT EXISTS practice_opponent(" +
"id INTEGER PRIMARY KEY NOT NULL, " +
"name TEXT NOT NULL);" +
"CREATE TABLE IF NOT EXISTS practice_opponent_comment(" +
"id INTEGER PRIMARY KEY NOT NULL, " +
"comment TEXT NOT NULL);" +
"CREATE TABLE IF NOT EXISTS practice_opponent_fleet(" +
"id INTEGER PRIMARY KEY NOT NULL, " +
"name TEXT NOT NULL);" +
"CREATE TABLE IF NOT EXISTS practice(" +
"id INTEGER PRIMARY KEY NOT NULL, " +
"opponent INTEGER NOT NULL, " +
"opponent_level INTEGER NOT NULL, " +
"opponent_experience INTEGER NOT NULL, " +
"opponent_rank INTEGER NOT NULL, " +
"opponent_comment INTEGER NOT NULL REFERENCES practice_opponent_comment(id), " +
"opponent_fleet INTEGER NOT NULL REFERENCES practice_opponent_fleet(id), " +
"rank INTEGER); " +
"CREATE VIEW IF NOT EXISTS participant_hd_view AS " +
"SELECT participant_heavily_damaged.battle AS battle, group_concat(participant.ship) AS ships FROM participant_heavily_damaged " +
"JOIN participant participant ON participant_heavily_damaged.battle = participant.battle AND participant_heavily_damaged.id = participant.id " +
"GROUP BY participant_heavily_damaged.battle;";
rCommand.ExecuteNonQuery();
}
using (var rCommand = Connection.CreateCommand())
{
rCommand.CommandText = "ATTACH @battle_detail_db AS battle_detail";
rCommand.Parameters.AddWithValue("@battle_detail_db", r_Filename);
rCommand.ExecuteNonQuery();
}
if (r_Connection != null)
{
r_Connection.Dispose();
r_Connection = null;
}
}