我如何在 node.js 中为 table 定义索引 (adonis)

How i can define index for a table in node.js (adonis)

其实我有这个 table:

ClassBookHistoric
-----------------
Id (Primary Key), 
Class_Id (Unique key, foreign key of table Class),
BookUnit_Id (Unique key, foreign key of table BookUnits) 
Book_Id 
Status

我需要这样查询来搜索数据:SELECT WHERE Class_Id = (parameter), Book_Id = (parameter) and Status = 1 (active)

我正在研究索引,我认为有必要使用我将用于搜索数据的列 (Class_Id, Book_Id and Status) 创建索引以提高性能。有一种方法可以为一组列创建索引:(Class_Id, Book_Id, Status)?如果可能的话,我如何在节点中创建一组索引。js/adonis?

Adonis.js 使用 knex.js 定义列类型和其他修饰符,如您在 docs 中所见。

因此,作为基于您的模式的示例(并非完全有效只是为了演示):

'use strict'

const Schema = use('Schema')

class ClassBookHistoric extends Schema {
  up () {
    this.create('class_books', (table) => {
      table.increments()
      table.integer('class_id').notNullable().unique()
      table.integer('book_unit_Id').notNullable().unique()
      table.index(['class_id','book_unit_Id'], 'class_book_index');
      table.timestamps()
    })
  }

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

module.exports = UsersSchema