最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在Sequelize上关联两个表

IT培训 admin 11浏览 0评论

如何在Sequelize上关联两个表

我很怀疑。有两个表,分别称为type_agricultural_implementagricultural_implement,其中type_agricultural_implement_idagricultural_implement的内部作为type_agricultural_implement_id。这是1:N的关系。但我不知道这是否是我的正确代码。

模型-type_agricultural_implement

/* jshint indent: 2 */

module.exports = function (sequelize, DataTypes) {
  const type_agricultural_implement = sequelize.define(
    'type_agricultural_implement',
    {
      id: {
        type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true,
      },
      description: {
        type: DataTypes.STRING(90),
        allowNull: false,
      },
    },
    {
      tableName: 'type_agricultural_implement',
    }
  );
  type_agricultural_implement.associate = (models) => {
    type_agricultural_implement.hasMany(models.agricultural_implement, {
      foreignKey: 'type_agricultural_machine_id',
    })
  }
};

模型-农业实施


/* jshint indent: 2 */

module.exports = function (sequelize, DataTypes) {
  const agricultural_implement = sequelize.define('agricultural_implement', {
    agricultural_implement_id: {
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true,
      references: {
        model: 'agricultural_machine',
        key: 'agricultural_machine_id'
      }
    },
    type_agricultural_machine_id: {
      type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
      allowNull: false,
      references: {
        model: 'type_agricultural_machine',
        key: 'id',
      },
    },
  }, {
    tableName: 'agricultural_implement'
  });

  agricultural_implement.associate = (models) => {
    agricultural_implement.belongsTo(models.type_agricultural_machine, { foreignKey: 'type_agricultural_machine_id' });
  };

  return agricultural_implement;
};

我的代码是否严格?

回答如下:

我解决了这个问题,在我的模型agricultural_implement处有

type_agricultural_machine_id: {
      type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
      allowNull: false,
      references: {
        model: 'type_agricultural_machine',
        key: 'id',
      },
    },
  }, {
    tableName: 'agricultural_implement'
  });

  agricultural_implement.associate = (models) => {
    agricultural_implement.belongsTo(models.type_agricultural_machine, { foreignKey: 'type_agricultural_machine_id' });
  };

我在有type_agricultural_machine_id的地方输入了错误的名称,将是type_agricultural_implement_idreferences相同,并且也有关联。

如何在Sequelize上关联两个表

我很怀疑。有两个表,分别称为type_agricultural_implementagricultural_implement,其中type_agricultural_implement_idagricultural_implement的内部作为type_agricultural_implement_id。这是1:N的关系。但我不知道这是否是我的正确代码。

模型-type_agricultural_implement

/* jshint indent: 2 */

module.exports = function (sequelize, DataTypes) {
  const type_agricultural_implement = sequelize.define(
    'type_agricultural_implement',
    {
      id: {
        type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true,
      },
      description: {
        type: DataTypes.STRING(90),
        allowNull: false,
      },
    },
    {
      tableName: 'type_agricultural_implement',
    }
  );
  type_agricultural_implement.associate = (models) => {
    type_agricultural_implement.hasMany(models.agricultural_implement, {
      foreignKey: 'type_agricultural_machine_id',
    })
  }
};

模型-农业实施


/* jshint indent: 2 */

module.exports = function (sequelize, DataTypes) {
  const agricultural_implement = sequelize.define('agricultural_implement', {
    agricultural_implement_id: {
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true,
      references: {
        model: 'agricultural_machine',
        key: 'agricultural_machine_id'
      }
    },
    type_agricultural_machine_id: {
      type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
      allowNull: false,
      references: {
        model: 'type_agricultural_machine',
        key: 'id',
      },
    },
  }, {
    tableName: 'agricultural_implement'
  });

  agricultural_implement.associate = (models) => {
    agricultural_implement.belongsTo(models.type_agricultural_machine, { foreignKey: 'type_agricultural_machine_id' });
  };

  return agricultural_implement;
};

我的代码是否严格?

回答如下:

我解决了这个问题,在我的模型agricultural_implement处有

type_agricultural_machine_id: {
      type: DataTypes.INTEGER(5).UNSIGNED.ZEROFILL,
      allowNull: false,
      references: {
        model: 'type_agricultural_machine',
        key: 'id',
      },
    },
  }, {
    tableName: 'agricultural_implement'
  });

  agricultural_implement.associate = (models) => {
    agricultural_implement.belongsTo(models.type_agricultural_machine, { foreignKey: 'type_agricultural_machine_id' });
  };

我在有type_agricultural_machine_id的地方输入了错误的名称,将是type_agricultural_implement_idreferences相同,并且也有关联。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论