Как обновить таблицу соединений с ролью пользователя в Adonis - PullRequest
0 голосов
/ 01 июня 2018

У меня есть база данных с тремя таблицами: users, games и game_user.users и games имеют отношение "многие ко многим" с game_user в качестве своей соединительной таблицы

Таблица game_user имеет только три столбца (кроме id): game_id, user_id и game_admin.

Идея состоит в том, что user может быть обычным пользователем в game или admin.Например, я бы сохранил значения 0 для первого и 1 для более позднего.

Я не уверен, как это сделать в Adonis.Я прочитал документацию и, возможно, мне следует создать pivotModel, но я не уверен, как это сделать (или, если я должен это сделать).

Я попробовал следующее:

class GameUserSchema extends Schema {
  up () {
    this.create('game_user', (table) => {
      table.increments()
      table.integer('user_id').unsigned().index('user_id')
      table.integer('game_id').unsigned().index('game_id')
      table.integer('game_admin').unsigned().index('game_admin')
      table.foreign('user_id').references('users.id')
                                            .onDelete('cascade')
      table.foreign('game_id').references('games.id')
                                            .onDelete('cascade')
    })
  }

  down () {
    this.drop('game_user')
  }
}

Теперь, когда я добавляю игры, я обычно делаю следующий код:

const newGame = await Game.create(gameData)
await user.games().attach([newGame.id])

Но это только обновляет таблицу соединений с user_id, очевидно, не с ролью пользователя.

Итак, мой вопрос: мой файл миграции правильный или есть лучший способ?Также, как я могу обновить таблицу соединений при создании игры?

...