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 中看到的)