我有一个嵌套模型:
var School = DS.Model.extend({
classrooms: DS.hasMany('classroom', {async: true})
});
var Classroom = DS.Model.extend({
students: DS.hasMany('student', {async: true}),
school: DS.belongsTo('school', {async: true})
});
var Student = DS.Model.extend({
name: DS.attr('string'),
classroom: DS.belongsTo('classroom', {async: true})
});
我使用firebase作为后端,我知道为了提高效率,建议对模式进行非规范化。显式指定关系是否有任何实用程序
var Student = DS.Model.extend({
school: DS.belongsTo('school', {async: true});
});
代表Student
模型,即使属于Student
的每个Classroom
和属于Classroom
的每个School
暗示了这一点?
答案 0 :(得分:0)
我会使用计算属性或绑定来获取你想要的东西 - 比如
school: Ember.computed.alias('classroom.school')
schoolBinding: 'classroom.school'
它不会是DS.belongsTo因为数据实际上不包含学校属性
答案 1 :(得分:0)
没有。您不应该提供嵌套关系信息,除非可以从根对象直接访问相关模型(希望这是有意义的)。
唯一的好处"这样做是因为在您的情况下,student
模型将在加载school
数据时加载,而不是等到加载classroom
数据。但是,这将提供一个不反映您的意图的数据结构,因此我不会提倡这样做。