正确的方法来定义两个表之间的双向关系

时间:2014-07-21 13:53:13

标签: javascript bookshelf.js

我有三张桌子:

Employee (emp_id,name)
Projects (pid,proj_status)
Project_Allocation (pid,emp_id)

找到属于我项目的人:
我有我的名字,我查询我的emp_id 2.使用我的emp_id,我从Project_Allocation(已完成的项目)查询(withRelated)我的所有项目,并在项目上定义了belongsTo关系
然后我选择状态为“LIVE”的项目的pid 4.现在我在Project_allocation中选择所有具有此pid的模型。

我遇到的问题是为Project和Project_Allocation表创建模式时。两者都需要彼此,我不能加载它们。请建议我如何重写这个。

以下是一些摘录:

Project_Allocation文件:

var Project = require('./project');
var PASchema = Bookshelf.Model.extend({
tableName: 'project_allocation',
project: function(){
    return this.belongsTo(ProjectSchema, 'pid')
}

项目文件:

var ProjAlloc = require('./projAlloc');
var ProjectSchema = Bookshelf.Model.extend({
tableName: 'project',
idAttribute: 'pid',
allocatedIDs: function() {
    return this.belongsTo(PASchema,'pid')
}

1 个答案:

答案 0 :(得分:0)

问题在于require。那里造成了僵局。我在一个单独的文件中定义了我的每个表,并require将它们定义在其他表定义中(即其他文件)。将所有表定义写在一个文件中,然后导出该对象就可以了。

相关问题