Проблема кодирования слабой сущности в дальнейшем - PullRequest
0 голосов
/ 21 июня 2019

Я создаю приложение для кино. Я смоделировал базу данных на mySql, но у меня возникли проблемы с ее переносом в Sequelize. Я ознакомился с документацией, но получаю много разных ошибок.

Я попытался использовать ассоциации и индексы (как и должно быть). Это модель, которую я пытаюсь сделать .

OCCUPIED_SEATS состоит только из двух внешних ключей, и оба имеют уникальный индекс.

OCCUPIED_SEATS

const SEATS = require("./Seats");
const SCREENING = require("./Screening");

const OCCUPIED_SEATS = sequelize.define("OCCUPIED_SEATS", {
    //SEATS_ID
    //SCREENING_ID
  },
  {
    indexes: [
      {
        unique: true,
        fields: [SEAT_ID, SCREENING_ID]
      }
    ],
    underscored: true
  }
);

module.exports = OCCUPIED_SEATS;

СИДЕНЬЯ

const OCCUPIED_SEATS = require("./Occupied_Seats");

const SEATS = sequelize.define("SEATS", {
    SEATS_ID: {       
      type: Sequelize.INTEGER,
      primaryKey: true,
      allowNull: false,
      autoIncrement: true
    },
    ROW: {
        type: Sequelize.STRING,
        allowNull: false,
    },
    COLUMN: {
        type: Sequelize.INTEGER,
        allowNull: false
    },
  },
  {
    underscored: true
  }
);

SEATS.hasMany(OCCUPIED_SEATS, {foreignKey: 'SEAT_ID'})

module.exports = SEATS;

Скрининг

const OCCUPIED_SEATS = require("./Occupied_Seats");

const SCREENING = sequelize.define("SCREENING", {
    SCREENING_ID: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      allowNull: false,
      autoIncrement: true
    },
    SCREENING_START_TIME: {
        type: Sequelize.TIME,
        allowNull: false,
    },
    DATE: {
        type: Sequelize.DATE,
        allowNull: false
    }
  },
  {
    underscored: true,
    indexes: [
      {
        unique: true,
        fields: [ROOM_ID, SCREENING_START_TIME, DATE]
      }
    ]
  }
);

SCREENING.hasMany(OCCUPIED_SEATS, {foreignKey: 'SCREENING_ID'});

module.exports = SCREENING;

Я получаю сообщение об ошибке:

[?] Error: SEATS.hasMany called with something that's not a subclass of Sequelize.Model

Как мне код модели?

1 Ответ

0 голосов
/ 25 июня 2019

Похоже, что в новой версии Sequelize вы должны определять свои модели с помощью Sequelize.Model типа:

class Seats extends Sequelize.Model {}
Seats.init({
    id: {       
      type: Sequelize.INTEGER,
      primaryKey: true,
      allowNull: false,
      autoIncrement: true
    },
    row: {
      type: Sequelize.STRING,
      allowNull: false,
    },
   ...
});
module.exports = Seats;

А потом еще где-нибудь:

Seats.hasMany(OccupiedSeatc, {foreignKey: 'SEAT_ID'})

См. документы по определению модели и документы по ассоциации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...