0

私は3つのテーブルを持っています:

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

私のプロジェクトに属する人を見つけるには:
1. 私は自分の名前を持っているので、emp_id をクエリします。
2. emp_id を使用して、Projects で定義された belongsTo リレーションを使用して、Project_Allocation からすべてのプロジェクト (完了したものも含む) を照会 (withRelated) します
。 3. 次に、ステータスが「LIVE」のプロジェクトの pid を選択します
。 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')
}
4

1 に答える 1

1

問題はにありましたrequire。そこでデッドロックが発生していました。各テーブルを個別のファイルでrequire定義し、それらを他のテーブル定義 (つまり、他のファイル) で定義していました。すべてのテーブル定義を 1 つのファイルに書き込んでから、そのオブジェクトをエクスポートするとうまくいきました。

于 2014-08-18T13:08:47.967 に答える