Установить однозначную ассоциацию в sequelize

#mysql #postgresql #orm #sequelize.js

#mysql #postgresql #orm #sequelize.js

Вопрос:

Я пытаюсь получить единственную взаимно однозначную ассоциацию. Это мой код:

  • Код поставщика
 const Provider = sequelize.define("provider", {
    idProvider: {
      type: Sequelize.INTEGER,
      autoIncrement: true,
      primaryKey: true,
    },
    idUser: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      //unique: true,
    },
    isPublicProvider: {
      type: Sequelize.BOOLEAN,
    },
  });

  Provider.associate = function (models) {
    Provider.hasOne(models.user, {
      through: "users",
      as: "idUser",
      foreignKey: "idUser",
      onDelete: "CASCADE",
    });
  };

  

В части ассоциации я должен получить только один идентификатор пользователя из этой таблицы

  • Пользовательский код
 const User = sequelize.define("user", {
    idUser: {
      type: Sequelize.INTEGER,
      autoIncrement: true,
      unique: true,
      primaryKey: true,
    },
    nameUser: {
      type: Sequelize.STRING,
      validate: { notEmpty: true },
    },
    emailUser: {
      type: Sequelize.STRING,
      unique: true,
      validate: { isEmail: true },
    },
    activeUser: {
      type: Sequelize.BOOLEAN,
    },
  });

  User.associate = (model) => {
    User.belongsTo(models.Group, {
      through: "providers",
      as: "idUser",
      foreignKey: "idUser",
    });
  };
  

Когда я проверяю модель ERR, нет никакой связи между

[Это изображение из моей диаграммы]https://i.stack.imgur.com/bWqOo.png

Спасибо всем перед ответом 🙂

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

1. Где определение групповой модели и ассоциаций?

2. Согласно вашей схеме, пользователь и поставщики не связаны никакими внешними ключами

3. through параметры имеют смысл только для ассоциации belongsToMany