私は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')
}