Упорядочить сгенерированные столбцы sqlite

#sqlite #sequelize.js

#sqlite #sequelize.js

Вопрос:

в моей таблице sqlite четыре столбца a, b, c, d.

значение в c равно a-b и d равно a b .

я определяю свою модель следующим образом

 const myModel = sequelize.define('mymodel', {a:Sequelize.INTEGER,b:Sequelize.INTEGER,c:Sequelize.INTEGER,d:Sequelize.INTEGER}
 

и создать объект, подобный

 var myModelObj = {a:10, b:20, c:function(){return this.a - this.b}, d:function(){return this.a   this.b}
 

а затем создать данные в БД, например

 myModel.create(myModelObj);
 

Когда я так делаю, все в порядке. Но я ищу способ, которым я могу определить генераторы значений c, d в самом определении модели. Есть ли способ сделать это.

Комментарии:

1. Может быть, с использованием геттеров и сеттеров ?

Ответ №1:

Как упоминалось в документах, вы можете определить геттеры и сеттеры

 const myModel = sequelize.define(
  'mymodel',
  {
    a:Sequelize.INTEGER,
    b:Sequelize.INTEGER,
    c: {
      Sequelize.INTEGER,
      get() {
        const a = this.getDataValue('a');
        const b = this.getDataValue('b');
        return a-b;
      },
      set() {
        const a = this.getDataValue('a');
        const b = this.getDataValue('b');
        return a-b;
      },
    },
    d: {
      Sequelize.INTEGER,
      get() {
        const a = this.getDataValue('a');
        const b = this.getDataValue('b');
        return a b;
      },
      set() {
        const a = this.getDataValue('a');
        const b = this.getDataValue('b');
        return a b;
      },
    },
  }
);