Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 与余烬数据模型的多对多关系_Ember.js_Many To Many_Ember Data - Fatal编程技术网

Ember.js 与余烬数据模型的多对多关系

Ember.js 与余烬数据模型的多对多关系,ember.js,many-to-many,ember-data,Ember.js,Many To Many,Ember Data,我是emberjs的新手,目前正在从事一个新项目。我的应用程序有3个模型,即成员、项目和任务 一个成员可以有许多任务,一个任务可以有许多成员(多对多) 一个项目可以有多个任务,而一个任务只能属于一个项目(一对多) 一个项目可以有多个成员,一个成员可以有多个项目(多对多) 对于1和2,一切都很好 但是,对于项目和成员之间的关系,成员可以是项目的简单成员,也可以是项目经理 在我的数据库模式中,我通过一个名为project_members的附加表和一个名为“role”的附加字段来表示这种关系,该字段可

我是emberjs的新手,目前正在从事一个新项目。我的应用程序有3个模型,即成员、项目和任务

  • 一个成员可以有许多任务,一个任务可以有许多成员(多对多)
  • 一个项目可以有多个任务,而一个任务只能属于一个项目(一对多)
  • 一个项目可以有多个成员,一个成员可以有多个项目(多对多)
  • 对于1和2,一切都很好

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

    在我的数据库模式中,我通过一个名为project_members的附加表和一个名为“role”的附加字段来表示这种关系,该字段可以是0(表示简单成员)或1(表示项目经理)

    使用余烬数据模型表示这一点的最佳方式是什么?我应该如何表示这种关系,以及我应该如何以及在何处包括额外的“角色”字段


    谢谢

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

    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')
    

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

    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')