-1

我有一个 MySQL 数据库,其中包含一个文件表和一个文件夹表,其中包含与文件夹表相关的文件表上的外键。对于文件夹集合,我必须使用文件夹模型和文件模型填充集合。因为差异模型 ids 冲突一个模型抹杀另一个。我的问题是,我该如何克服这个问题。

4

1 回答 1

1

为避免在这种情况下发生 id 冲突,您可能需要更改 Backbone 将用作 id 的属性。标准是属性“id”,但您可以通过更改 idAttribute 属性来修改它。

这是你如何做到的:

idAttribute: 'uniqueId',

其中 uniqueId 是您肯定知道永远不会发生冲突的属性。

如果你没有一个独特的价值,你必须创造一个。这可以通过重写解析函数(从后端接收数据时调用)来完成。这是创建复合 ID 的方式:

parse:function(data){
  if(_.isArray(data){
    _.each(data, function(record){
      record['uniqueId'] = record['id'] + ':' + ([check if record is a file] ? record['folderId'] : '');
    }
  }
  return data;
}

现在,您所有的文件夹 uniqueId 都将与它们的 id 相同,并且文件 uniqueId 将是文件 id 和文件夹 id 的组合。

于 2013-06-27T09:33:18.513 回答