0

我有两张桌子,processconstraint_process_type

关系为process.type= constraint_process_type.value

里面基本上有一个 ID 字段作为constraint_process_type代理键,但不用于连接。该value字段是我需要使用的字段。

我似乎无法让 Sequalize 和 AdminBro 为我工作。

过程:

module.exports = (sequelize, DataTypes) => {
  const Process = sequelize.define(
    "Process",
    {
      process_id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true,
      },
      name: DataTypes.STRING,
      description: DataTypes.STRING,
      type: {
        type: DataTypes.STRING,
      },
      priority: DataTypes.INTEGER,
      dependency_logic: DataTypes.STRING,
      insert_date: { type: DataTypes.DATE, allowNull: false },
      update_date: {
        type: DataTypes.DATE,
        allowNull: true,
        defaultValue: DataTypes.NOW,
      },
    },
    {
      tableName: "process",
      createdAt: "insert_date",
      updatedAt: "update_date",
      freezeTableName: true,
    }
  );
  Process.associate = function (models) {
    Process.belongsTo(models.ConstraintProcessType, {
      foreignKey: "type",
      targetKey: "value",
    });
  };
  return Process;
};

约束进程类型:

module.exports = (sequelize, DataTypes) => {
  const ConstraintProcessType = sequelize.define(
    "ConstraintProcessType",
    {
      constraint_process_type_id: { type: DataTypes.INTEGER },
      value: { type: DataTypes.STRING, primaryKey: true },
      comment: DataTypes.STRING,
      insert_date: { type: DataTypes.DATE, allowNull: false },
      update_date: {
        type: DataTypes.DATE,
        allowNull: true,
        defaultValue: DataTypes.NOW,
      },
    },
    {
      tableName: "constraint_process_type",
      createdAt: "insert_date",
      updatedAt: "update_date",
      freezeTableName: true,
    }
  );
  return ConstraintProcessType;
};

Sequelize 和 AdminBro 最终做的是用表type中的 ID 字段替换实际值constraint_process_type

在此处输入图像描述

根本不是我想要的。我希望关系存在,但我不需要他们用 ID 替换实际值。

对这个有什么想法吗?

4

0 回答 0