我想创建一个类似于存储结构的树,以便与我的应用程序一起使用,但无法找到有关如何使用Waterline属性创建树模型的足够文档。
案例很简单。我需要有一组文件夹,可以有多个级别的子文件夹,最后是文件。您通常在mySQL中为此类数据执行的操作是将parent_id字段作为模型本身的外键添加到模型中。
如何使用sailsjs / waterline模型中的属性来完成?
我尝试过以下操作,这会产生相当多的冗余和孤立数据:
-
attributes: {
name: {
type: 'string'
},
parentFolder: {
model: 'Folder'
},
childFolders: {
model: 'Folder',
via: 'parentItem'
}
}
- 有什么想法吗?
顺便说一句,如果这是可能的,那么让我们说使用mySQL作为后端。怎么会复制说mongoDB?
答案 0 :(得分:1)
这似乎有效:
name: {
type: 'string',
maxLength: 255,
required: true
},
parent: {
model: 'folder'
},
childs: {
collection: 'folder',
via: 'parent'
}
我相信通过在浏览器中直接通过GET发布数据来生成重复项。我通过POST与客户发布数据,似乎按预期工作。 (至少从我在mySQL中看到的内容)