2015-10-13 56 views
0

我想创建一个树状存储结构以用于我的应用程序,但无法找到足够的关于如何使用水线属性创建树模型的文档。Sails.js - 水线模型 - 与自身的关联

案例很简单。我确实需要有一组文件夹,可以有多层子文件夹,最后是文件。你通常在mySQL中为这种数据做的事情是在模型中添加一个parent_id字段作为模型本身的外键。

这怎么能用sailsjs/waterline模型中的属性来完成?

我试着做一些像下面,产生相当多的冗余和孤立的数据:

-

attributes: { 
    name: { 
     type: 'string' 
    }, 
    parentFolder: { 
     model: 'Folder' 
    }, 
    childFolders: { 
     model: 'Folder', 
     via: 'parentItem' 
    } 
} 

- 任何想法?

顺便说一下,如果这是可能的,比如说使用mySQL作为后端。它将如何复制说,mongoDB?

+0

你能解释一下你现在使用的方法失败吗?如何创建冗余/孤立数据? – Meeker

回答

1

这似乎工作:

name: { 
     type: 'string', 
     maxLength: 255, 
     required: true 
    }, 

    parent: { 
     model: 'folder' 
    }, 

    childs: { 
     collection: 'folder', 
     via: 'parent' 
    } 

我相信正由通过在浏览器中得到直接发布数据产生重复。我通过POST发布数据给客户端,它似乎按预期工作。 (至少从我在mySQL中看到的)