【问题标题】:Objection variable number of columns in a model模型中的反对变量列数
【发布时间】:2021-01-14 12:45:55
【问题描述】:

假设我有一个来自数据库模式的模型。然而,这个模式本身可能是可变的,除了 idkey 列之外,列的数量可能会随着时间的推移而改变/增长,我事先不知道列的名称。 (是的,我意识到这不是设计数据库的正确方法,但这是我们现在所拥有的)。

export class PersonModel extends Model {
    static get tableName() {
        return "person"
    }

    static get idColumn() {
        return "id";
    }

    static get keyColumn() {
        return "key";
    }

    //And some variable number of other columns.

}

对于Objection 模型,我该如何描述?

【问题讨论】:

    标签: javascript knex.js objection.js


    【解决方案1】:

    您可以将类包装到一个函数中以定义其属性。这是一个仅传递表名的示例:

    export dynamicModelFactory = ({tableName}) => {
    
      class DynamicModel extends Model {
        static get tableName() {
            return tableName
        }
    
        static get idColumn() {
            return "id";
        }
    
        static get keyColumn() {
            return "key";
        }
    
        //And some variable number of other columns.
      }
    
      return DynamicModel
    }
    
    const PersonModel = dynamicModelFactory({tableName: 'person'}) // Getting the Objection dynamic model for person tablename
    

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      相关资源
      最近更新 更多