Javascript Node.js/Bookshelf-映射模型,其中一个表中的多个列引用另一个表的ID

Javascript Node.js/Bookshelf-映射模型,其中一个表中的多个列引用另一个表的ID,javascript,node.js,model,bookshelf.js,Javascript,Node.js,Model,Bookshelf.js,我将node.js与bookshelf一起用作ORM。我是这项技术的新手 我遇到的情况是,数据库表中有几列。出于这个问题的考虑,这些列应命名为“出售者id”、“签署者id”和“牵头开发者id”,并且所有列都将引用具有id的用户表 换句话说,系统中的不同用户在任何时候都会与三个不同的角色关联,而不一定是唯一的 今后,我需要能够以以下方式检索信息: let soldByLastName = JobTicket.soldBy.get('last_name'); 我试着四处搜索并阅读文档,但我仍然不确

我将node.js与bookshelf一起用作ORM。我是这项技术的新手

我遇到的情况是,数据库表中有几列。出于这个问题的考虑,这些列应命名为“出售者id”、“签署者id”和“牵头开发者id”,并且所有列都将引用具有id的用户表

换句话说,系统中的不同用户在任何时候都会与三个不同的角色关联,而不一定是唯一的

今后,我需要能够以以下方式检索信息:

let soldByLastName = JobTicket.soldBy.get('last_name');
我试着四处搜索并阅读文档,但我仍然不确定如何实现这一点。显然,下面的方法不起作用,我知道第二个参数是针对目标表的,但它说明了我试图实现的概念

// JobTicket.js
soldBy: function() {
    return this.belongsTo(User, 'sold_by_id');
},

signedOffBy: function() {
    return this.belongsTo(User, 'signed_off_by_id');
},

leadDeveloper: function() {
    return this.belongsTo(User, 'lead_developer_id');
}
显然,我需要在
User.js

我不知道从哪里开始,有人能给我指出正确的方向吗


还是我只是个十足的白痴^_^

你的定义看起来不错。对于使用它们,它将类似于:

new JobTicket({ id: 33 })
  .fetch({ withRelated: [ 'soldBy', 'signedOffBy' ] })
  .then(jobTicket => {
    console.log(jobTicket.related('soldBy').get('last_name');
  });

除此之外,我建议您使用
注册表
插件来引用其他模型。这减轻了引用尚未加载的模型的痛苦。

您的定义看起来不错。对于使用它们,它将类似于:

new JobTicket({ id: 33 })
  .fetch({ withRelated: [ 'soldBy', 'signedOffBy' ] })
  .then(jobTicket => {
    console.log(jobTicket.related('soldBy').get('last_name');
  });

除此之外,我建议您使用
注册表
插件来引用其他模型。这减轻了引用尚未加载的模型的痛苦。

这非常有用。这些文档让我对“belongsTo”的工作原理感到困惑。干杯!!:):)这很有帮助。这些文档让我对“belongsTo”的工作原理感到困惑。干杯!!:):)