与ember-data模型的多对多关系

时间:2015-07-13 15:39:07

标签: ember.js many-to-many ember-data

我是emberjs的新手,我目前正在开发一个新项目。我的应用程序有3个模型,即Member,Project和Task。

  1. 一个成员可以有很多任务,一个任务可以有很多成员(多对多)
  2. 项目可以有很多任务,任务只能属于一个项目(一对多)
  3. 项目可以有很多成员,成员可以有很多项目(多对多)
  4. 对于1和2,一切都很好。

    但是,对于项目和成员之间的关系,成员可以是项目的简单成员,也可以是项目经理。

    在我的数据库模式中,我通过另外一个名为project_members的表来表示这种关系,并且还有一个名为' role'它可以是0(表示简单成员)或1(表示项目经理)。

    使用ember-data模型表示这个的最佳方法是什么?我该如何表达这种关系,以及我应该如何以及在哪里包含额外的角色'场?

    由于

1 个答案:

答案 0 :(得分:0)

不确定它是否可行,因为我没有尝试过指向一个模型的多个属性,但您可以在项目模型中添加这些属性,如

projectManager: DS.belongsTo('member'),
members: DS.hasMany('member')

然后是成员模型

projectManagerTo: DS.hasMany('project')
projects: DS.hasMany('project')

或者,无论您是否知道项目经理只使用成员模型数据,您都可以使用计算属性。

projectManager: function() {
  // some logic to determine which of the members is the project manager
}.property('members')