gpt4 book ai didi

node.js - 如何在 Sequelize 中建模一对多关联?

转载 作者:IT老高 更新时间:2023-10-28 23:08:41 33 4
gpt4 key购买 nike

我是 Sequelize 的新手,我正试图弄清楚,我应该如何为一对多关系建模。

我的问题是:一个学期,多篇论文。

var Term = sequelize.define( 'Term', ... );
var Paper = sequelize.define( 'Paper', ... );

假设我有一个术语。每个学期可以有很多篇论文,我想为我的学期添加/删除论文。我也想拿到这个学期的所有论文。

var term;
...
term.getPapers( ... );
term.setPapers( ... );
term.addPaper( paper );
term.removePaper( paper );

现在,假设我有一篇论文。我想获取/设置我的论文的术语。

var paper;

...

paper.getTerm();
paper.setTerm();

如何使用 sequelize 实现?我已经研究了几个小时的文档,并且还在网上寻找一些胶水,但没有任何结果。我发现这种关联在 sequelize 中记录得很差(一对一和多对多要好得多)。

更新:

好的,几个小时后我弄清楚了它是如何工作的:

Term.hasMany( Paper, { as: 'papers' } );
Paper.hasOne( Term );

现在我们可以这样做了:

term.addPaper( paper );
term.removePaper( paper );

paper.getTerm()
.success( function( term )
{
...
});
paper.setTerm( term );

我已经习惯了 Django,而且似乎 Sequelize 在代码和文档方面都不那么成熟......

最佳答案

首先您必须创建关联。你做对了:

  Term.hasMany( Paper, { as: 'papers' } );
Paper.hasOne( Term );

那么你必须同步这个声明:

  sequelize.sync();

现在持久化数据。您需要先保存对象才能关联它。

  term.create()...
paper1.create()...
paper2.create()...

term.setPapers([paper1, paper2]).success(function() {
// saved!
})

引用:http://docs.sequelizejs.com/en/1.7.0/docs/associations/#many-to-many-associations

关于node.js - 如何在 Sequelize 中建模一对多关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760994/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com