帆中的多对多关系

Luc*_*Luc 5 node.js sails.js

在我的sails应用程序(真的是帆船新手)中,我有3个模型:
- 用户(电子邮件,密码)
- 组(名称)
- 项目(名称)
我希望群组模型充当多对多关系在用户和项目之间,如何实现这一目标?

我正在使用风帆0.9.4,我已经阅读了关于这种关系的问题#124但是并不真正理解这是否可以应用于现有模型(在itemId和userId之上还包含它自己的属性).

hen*_*lei 7

如果切换到v0.10分支,可以尝试以下方法,

// Users.js
module.exports = {
    tableName: 'user',
    attributes: {
        email: 'STRING',
        password: 'STRING',
    }
    items: {
        collection: 'item',
        via: 'users',
        through: 'useritem'
    }
}

// Items.js
module.exports = {
    tableName:'item',
    attributes: {
        name: 'STRING'
    }
    users: {
        collection: 'user',
        via: 'items',
        through: 'useritem'
    }
}

// Groups.js
module.exports = {
  tableName: 'group',
  tables: ['user', 'item'],
  junctionTable: true,

  attributes: {
    id: {
      primaryKey: true,
      autoIncrement: true,
      type: 'integer'
    },
    user_items: {
      columnName: 'user_items',
      type: 'integer',
      foreignKey: true,
      references: 'user',
      on: 'id',
      via: 'item_users',
      groupBy: 'user'
    },
    item_users: {
      columnName: 'item_users',
      type: 'integer',
      foreignKey: true,
      references: 'item',
      on: 'id',
      via: 'user_items',
      groupBy: 'item'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我必须通过这个文件中的代码来了解发生了什么.


sco*_*ott 1

从 Sails.js v0.9.4 开始,该框架尚不支持关联。

Balderdash(Sails 的开发者)表示关联和交易都在生产版本的路线图上,并在GitHub 上的#124 问题中记录了可能的 API

目前 Waterline(Sails 使用的 ORM 适配器)有一个支持关联的开发分支,但是在查找有关新 API 的文档时可能会遇到一些问题

目前,您必须发挥创造力并寻找连接用户和项目的替代方法