簡體   English   中英

Sequelize:創建多個自我關聯

[英]Sequelize: Create multiple self association

我有 model “主題”,它與自己的“繼任者”和“前任者”有自我關系。 為此,我需要創建兩個外鍵“successorId”和“predecessorId”。

我能夠創建關系,但不知道如何在外鍵中添加條目。

Model 主題:

const { sequelize } = require('../config/databaseInit');
const { DataTypes, Model } = require('sequelize');

class Subject extends Model {}

Subject.init(
  {
    subjectCode: {
      type: DataTypes.STRING(40),
      unique: true,
    },
    subjectName: {
      type: DataTypes.STRING(60),
      allowNull: false,
    },
    ...
    ...
    ...
    successorId: {
      type: DataTypes.INTEGER,
      references: {
        model: 'Subject',
        key: 'id',
      },
    },
    predecessorId: {
      type: DataTypes.INTEGER,
      references: {
        model: 'Subject',
        key: 'id',
      },
    },
  },
  {
    sequelize: sequelize,
    modelName: 'Subject',
    tableName: 'Subject',
    timestamps: true,
  }
);

例如:

const sub1 = await Subject.create({....});
const sub2 = await Subject.create({....});

// None of them are working.
sub1.setSuccessorId(sub2);
sub1.setSuccessor(sub2);
sub1.update({ successorId: sub1.id });

您可以在此處確定您的關系 model 1-n/nn/1-n 鏈接: https://sequelize.org/master/manual/assocs.ZFC35FDC70D5FC69D269883A822C7A53

Subject.belongsTo(models.Class, { as: 'subject', foreignKey: 'subjectId' });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM