如何build模一对多关联的续集?

我是新来的Sequelize,我试图弄清楚,我应该如何build模一对多的关系。

我的问题如下:一个学期,很多论文。

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来实现? 我一直在研究文档几个小时,也在网上寻找一些胶水,但没有任何结果。 我发现这样的联系在续集中logging的很差(一对一,多对多更好)。

更新

好吧,几个小时后,我研究了它是如何工作的:

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

现在我们可以做到:

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

我已经习惯了Django,Sequelize似乎在代码和文档方面都不太成熟。

首先你必须创build关联。 你做得正确:

  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

这取决于你如何构build数据库,这会想到..

 paper.hasOne(term,{as:"PaperTerm"})