Sequelize.js 使用外键对关联进行续集

Sequelize.js 使用外键对关联进行续集,sequelize.js,Sequelize.js,我真的错过了续集里的这个。 .hasMany定义仅适用于ID上的映射。 让我们以通常的项目/任务为例。假设项目具有版本属性,并且应该与具有相同版本属性的任务相关联 我需要一种方法来强制关系基于两个属性:ID和VERSION 我坚信我们需要一种基于多个外键(称为复合键)进行关联的方法 在我的项目中,我不得不向模型中添加一系列方法,以使用多个键为gettask提供替代 如果有人提出建议,我们欢迎他。这也是我们项目中需要的东西。我们已经添加了我们需要的功能,并且每天都在我们的项目中使用它,但是功能还没

我真的错过了续集里的这个。 .hasMany定义仅适用于ID上的映射。 让我们以通常的项目/任务为例。假设项目具有版本属性,并且应该与具有相同版本属性的任务相关联

我需要一种方法来强制关系基于两个属性:ID和VERSION

我坚信我们需要一种基于多个外键(称为复合键)进行关联的方法

在我的项目中,我不得不向模型中添加一系列方法,以使用多个键为gettask提供替代


如果有人提出建议,我们欢迎他。

这也是我们项目中需要的东西。我们已经添加了我们需要的功能,并且每天都在我们的项目中使用它,但是功能还没有完全测试,所以我们还没有提交请求

但是,您可以在以下位置找到代码:

specs/associations/composite key.spec.js
显示API:

Article=sequelize.define('Article'{
“标题”:Sequelize.STRING
}, {
实例方法:{
项目_键:“文章”
}        
});
Label=sequelize.define('Label'{
“文本”:Sequelize.STRING
})
Label.hasMany(文章,{foreignKey:“Label_id”,joinTableName:“item_Label”});
Article.hasMany(标签,{foreignKey:{“item_-id”:“id”,“item”:“item_-key”},joinTableName:“item_-Label”});
在本例中,一篇文章可以有多个标签。联接表(
item\u label
)有以下行:
id、item、item\u id、label\u id
。 这里最重要的是最后一行,它表明标签和文章之间的链接是一个复合键。外键作为映射提供,其中键是联接表中的行,值是项目行中的值。您可以在这里看到item_标签中的item映射到item_键,这是文章中的一个实例方法。这是因为所有文章都有关键文章,所以不需要将其保存在数据库中


我希望这对您有所帮助,如果您仍有疑问,请随时发布您的sequelize模型代码,我将尽力提供帮助:-)

好吧,看看代码,目前它只适用于hasOne,hasMany双链接(使用联接表)。我想我们从来都不需要它,因为有很多单链接。我会把它写在我的待办事项清单上,但是我不能保证尽快准备好,因为我正处于考试项目的中间。LIB/ASCOOSITS/HAS-MANY单链连接有一个注射器和注射器的方法,我认为代码应该很相似,这是否使其进入后续生产?