feat: add some index on table schemas

This commit is contained in:
Kalane 2021-09-19 17:47:07 +02:00
parent 4fb60cc02a
commit 1e2cc8e898
6 changed files with 28 additions and 14 deletions

View file

@ -8,14 +8,16 @@ export default class Matches extends BaseSchema {
table.string('id', 15).primary()
table.bigInteger('game_id').notNullable()
table.specificType('map', 'smallint').notNullable()
table.specificType('gamemode', 'smallint').notNullable()
table.specificType('gamemode', 'smallint').notNullable().index()
table.bigInteger('date').notNullable()
table.string('region', 4).notNullable()
table.specificType('result', 'smallint').notNullable()
table.float('season').notNullable()
table.float('season').notNullable().index()
table.specificType('game_duration', 'smallint').unsigned().notNullable()
})
// this.schema.alterTable
}
public async down() {

View file

@ -6,19 +6,19 @@ export default class MatchPlayers extends BaseSchema {
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('match_id', 15).notNullable()
table.string('match_id', 15).notNullable().index()
table.specificType('participant_id', 'smallint').notNullable()
table.string('summoner_id', 63).notNullable()
table.string('summoner_puuid', 78).notNullable()
table.string('summoner_puuid', 78).notNullable().index()
table.string('summoner_name', 16).notNullable()
table.specificType('win', 'smallint').notNullable()
table.specificType('loss', 'smallint').notNullable()
table.specificType('remake', 'smallint').notNullable()
table.specificType('team', 'smallint').notNullable()
table.specificType('team_position', 'smallint').notNullable()
table.specificType('team', 'smallint').notNullable().index()
table.specificType('team_position', 'smallint').notNullable().index()
table.specificType('kills', 'smallint').unsigned().notNullable()
table.specificType('deaths', 'smallint').unsigned().notNullable()
@ -27,7 +27,7 @@ export default class MatchPlayers extends BaseSchema {
table.float('kp').notNullable()
table.specificType('champ_level', 'smallint').notNullable()
table.specificType('champion_id', 'smallint').notNullable()
table.specificType('champion_id', 'smallint').notNullable().index()
table.specificType('champion_role', 'smallint').notNullable()
table.specificType('double_kills', 'smallint').notNullable()
@ -66,6 +66,10 @@ export default class MatchPlayers extends BaseSchema {
table.integer('perks_secondary_style').notNullable()
table.specificType('perks_selected', 'INT[]').notNullable()
})
this.schema.alterTable(this.tableName, (table) => {
table.unique(['match_id', 'summoner_puuid'])
})
}
public async down() {

View file

@ -6,14 +6,18 @@ export default class SummonerNames extends BaseSchema {
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('summoner_puuid', 78).notNullable()
table.string('name', 16).notNullable()
table.string('summoner_puuid', 78).notNullable().index()
table.string('name', 16).notNullable().index()
/**
* Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
*/
table.timestamp('created_at', { useTz: true })
})
this.schema.alterTable(this.tableName, (table) => {
table.unique(['summoner_puuid', 'name'])
})
}
public async down() {

View file

@ -6,8 +6,12 @@ export default class SummonerMatchLists extends BaseSchema {
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('summoner_puuid', 78).notNullable()
table.string('match_id', 15).notNullable()
table.string('summoner_puuid', 78).notNullable().index()
table.string('match_id', 15).notNullable().index()
})
this.schema.alterTable(this.tableName, (table) => {
table.unique(['summoner_puuid', 'match_id'])
})
}

View file

@ -6,9 +6,9 @@ export default class MatchTeams extends BaseSchema {
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('match_id', 15)
table.string('match_id', 15).index()
table.specificType('color', 'smallint').notNullable() // 100 ou 200
table.specificType('color', 'smallint').notNullable().index() // 100 ou 200
table.string('result', 6) // Win - Remake - Fail
table.specificType('barons', 'smallint').notNullable()

View file

@ -7,7 +7,7 @@ export default class MatchPlayerRanks extends BaseSchema {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.integer('player_id').unsigned().notNullable()
table.integer('player_id').unsigned().notNullable().index()
table.specificType('gamemode', 'smallint').notNullable()