使用骨干关系颠倒数据结构



我正在使用主链关系使用嵌套数据编写应用程序。数据结构的最高级别包含大多数数据(根据MB),但从未用作独立项目。它仅用于充实其相关儿童的属性(轻量级模式?)。

要将所有这些数据发送到浏览器,我正在使用以下数据结构之类的东西

records = [ 
   {performerName: 'Jane', details: {composerName: 'Beethoven', ... }}, 
   ... 
] 

然后由两个模型PiecePerformance封装 - 两者都从Backbone.RelationalModel继承,但只有Performance的关系定义为如下

relations: [
    {
        type: 'HasOne',
        key: 'piece',
        relatedModel: 'Piece',
        reverseRelation: {
            key: 'performances'
        }
    }
],

然后可以直接从原始JSON构建表演集。

这一切都很好,但是问题在于我要为每个Piece发送几副数据副本(因为每件通常都有几个表演),因此下载尺寸比需要的大得多。p>发送更轻的重量数据结构的最佳方法是什么(如下或某些其他避免重复质量的结构),但仍具有相对毫无痛苦的我需要使用的表演收集的创造。

records = [ 
   {composerName: 'Beethoven', ..., performances: [array of jsons, one for each performance] 
   ... 
] 

我最终这样做的方式是将数据发送为

var data = { pieces: [
              {tune_name: 'eidelweiss', ..., performances: [{id:23}, {id:52}]} 
              ... 
             ],
             performances: [ array of performance jsons ]
           };

在零件模型中定义以下关系

relations: [
    {
        type: 'HasMany',
        key: 'performances',
        relatedModel: 'Performance',
    includeInJSON: false,
        reverseRelation: {
            key: 'piece'
        }
    }
]

,然后仅建立一个表演集和一个正常的作品集

相关内容

  • 没有找到相关文章

最新更新