Backbone.js - 为具有双向关系的实体创建模型和集合

时间:2016-07-31 14:34:47

标签: javascript backbone.js backbone-collections backbone-model

我正在尝试使用Backbone.js构建一个简单的学生列表应用程序,这将允许用户查看:

  1. 大学的所有学生。
  2. 所有课程。
  3. 所有学生都参加了特定的课程。
  4. 特定学生注册的所有课程。
  5. 因此,我创建了以下四个REST端点来获取这些数据:

    /students
    /courses
    /courses/{courseId}/students
    /students/{studentId}/courses
    

    所以,在这里,学生和课程之间存在双向关系,因为学生可以参加多门课程,并且可以在特定课程中注册多个学生。

    我试图弄清楚我需要创建的不同主干模型和集合。我创建了以下模型和集合:

    var Student = Backbone.model.extend({
    });
    
    var Students = Backbone.Collection.extend({
      model: Student,
      url: '/students'
    });
    
    var Course = Backbone.Model.extend({
    });
    
    var Courses = Backbone.Collection.extend({
      model: Course,
      url: '/courses'
    });
    

    这些可用于获取所有学生和所有课程,但其他两个端点的模型/馆藏应该是什么?

    为了获取课程的所有学生,我需要将Students集合添加到Course模型并为学生提取所有课程,我需要添加Courses集合到Student模型,这不是一个好的设计。我应该为此设置单独的集合StudentCoursesCourseStudents吗?

0 个答案:

没有答案