Sails.js - 基线模型 - 自身关联
Sails.js - Waterline Model - Association to itself
我想创建一个类似树的存储结构以用于我的应用程序,但找不到足够的文档来说明如何使用 Waterline 属性创建树模型。
案例很简单。我确实需要一组文件夹,它们可以有多个级别的子文件夹,最后是文件。你通常在 mySQL 中为这种数据做的是在你的模型中添加一个 parent_id 字段作为模型本身的外键。
如何使用 sailsjs/waterline 模型中的属性来完成此操作?
我试过做类似下面的事情,它产生了相当多的冗余和孤立数据:
--
attributes: {
name: {
type: 'string'
},
parentFolder: {
model: 'Folder'
},
childFolders: {
model: 'Folder',
via: 'parentItem'
}
}
--
有什么想法吗?
顺便说一句,如果可能的话,我们假设使用 mySQL 作为后端。它将如何复制说 mongoDB?
这似乎有效:
name: {
type: 'string',
maxLength: 255,
required: true
},
parent: {
model: 'folder'
},
childs: {
collection: 'folder',
via: 'parent'
}
我确实认为通过浏览器中的 GET 直接发布数据会生成重复项。我正在通过 POST 向客户发布数据,它似乎按预期工作。 (至少从我在 mySQL 中看到的)
我想创建一个类似树的存储结构以用于我的应用程序,但找不到足够的文档来说明如何使用 Waterline 属性创建树模型。
案例很简单。我确实需要一组文件夹,它们可以有多个级别的子文件夹,最后是文件。你通常在 mySQL 中为这种数据做的是在你的模型中添加一个 parent_id 字段作为模型本身的外键。
如何使用 sailsjs/waterline 模型中的属性来完成此操作?
我试过做类似下面的事情,它产生了相当多的冗余和孤立数据:
--
attributes: {
name: {
type: 'string'
},
parentFolder: {
model: 'Folder'
},
childFolders: {
model: 'Folder',
via: 'parentItem'
}
}
-- 有什么想法吗?
顺便说一句,如果可能的话,我们假设使用 mySQL 作为后端。它将如何复制说 mongoDB?
这似乎有效:
name: {
type: 'string',
maxLength: 255,
required: true
},
parent: {
model: 'folder'
},
childs: {
collection: 'folder',
via: 'parent'
}
我确实认为通过浏览器中的 GET 直接发布数据会生成重复项。我正在通过 POST 向客户发布数据,它似乎按预期工作。 (至少从我在 mySQL 中看到的)