簡體   English   中英

如何使用 Sequelize 添加外鍵和級聯屬性?

[英]How to add Foreign Key and Cascade properties with Sequelize?

我想用 Sequelize 為我的 express.js Model 實現這個 MySQL 查詢。

CREATE TABLE `Serivce_Area` (
  `service_area_id` int auto_increment primary key,
  `service_id` int not null,
  `area_id` int not null,  
  FOREIGN KEY (service_id) REFERENCES Service_Credential(service_id) ON UPDATE CASCADE ON DELETE CASCADE,
  FOREIGN KEY (area_id) REFERENCES Area_Details(area_id) ON UPDATE CASCADE ON DELETE CASCADE
);

在這里,我還有另外兩個名為 Service_Credential 和 Area_Details 的表,其中兩個主鍵分別命名為 service_id 和 area_id。 這就是我所做的。

const serviceArea = sequelize.define('Serivce_Area', {
    service_area_id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        allowNull: false,
        primaryKey: true
    },
    service_id:{
        type: Sequelize.INTEGER,
        allowNull: false
    },
    area_id: {
        type: Sequelize.INTEGER,
        allowNull: false
    },
});

但是我在添加外鍵和級聯屬性時遇到了麻煩。 我已經檢查了文檔。 但我仍然不知道該怎么做。 此外,一些stackoverflow答案包含belongsTohasMany屬性,我不確定如何在這種情況下使用。 請幫我解決一下這個。

我的朋友幫我解決了這個問題。 它奏效了。

    service_area_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    service_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      references: {
        model: 'Service_Credential',
        key: 'service_id'
      }
    },
    area_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      references: {
        model: 'Area_Details',
        key: 'area_id'
      }
    }

暫無
暫無

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

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