【问题标题】:Sequelize - map fields to field alias in model definitionSequelize - 将字段映射到模型定义中的字段别名
【发布时间】:2019-10-27 11:53:11
【问题描述】:

我正在定义一个 Sequelize 模型来映射数据库中现有表中的字段。但是,表中的字段名称很长,对开发人员不友好。

是否可以将数据库字段名称映射到模型定义中的别名,以便我的服务可以使用对开发人员更友好的模型属性名称?

示例:

这...

// Horrible field names
module.exports = (sequelize, DataTypes) =>
  sequelize.define('Transaction', {
    f_curr_finaccount__amount: DataTypes.DECIMAL,
    f_curr_finaccount__tx_type: DataTypes.STRING,
    f_finaccount__currency_iso_id: DataTypes.STRING,
    f_lex_finaccount__tx_atomic_status: DataTypes.STRING
  }, {
    schema: 'fins',
    tableName: 'fins_financialaccounttransaction',
    timestamps: false
  })

...变成...

// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
  sequelize.define('Transaction', {
    amount: {
      type: DataTypes.DECIMAL,
      fieldName: 'f_curr_finaccount__amount'
    },
    type: {
      type: DataTypes.STRING,
      fieldName: 'f_curr_finaccount__tx_type'
    },
    currency: {
      type: DataTypes.STRING,
      fieldName: 'f_finaccount__currency_iso_id'
    },
    status: {
      type: DataTypes.STRING,
      fieldName: 'f_lex_finaccount__tx_atomic_status'
    }
  }, {
    schema: 'fins',
    tableName: 'fins_financialaccounttransaction',
    timestamps: false
  })

【问题讨论】:

    标签: javascript node.js model sequelize.js


    【解决方案1】:

    与您所做的完全一样,但属性的名称只是 field。包括外键在内的所有列都是相同的。

    // Developer-friendly field names
    module.exports = (sequelize, DataTypes) =>
      sequelize.define('Transaction', {
        amount: {
          type: DataTypes.DECIMAL,
          field: 'f_curr_finaccount__amount'
        },
        type: {
          type: DataTypes.STRING,
          field: 'f_curr_finaccount__tx_type'
        },
        currency: {
          type: DataTypes.STRING,
          field: 'f_finaccount__currency_iso_id'
        },
        status: {
          type: DataTypes.STRING,
          field: 'f_lex_finaccount__tx_atomic_status'
        }
      }, {
        schema: 'fins',
        tableName: 'fins_financialaccounttransaction',
        timestamps: false
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多