在我的sails 应用程序(真正的新手)中,我有3 个模型:
- 用户(电子邮件、密码)
- 组(名称)
- 项目(名称)
我希望组模型充当多对多关系在用户和项目之间,如何实现?
我正在使用sails 0.9.4,我已经阅读了有关关系的问题#124,但并没有真正理解这是否可以应用于现有模型(该模型还包含在itemId和userId之上的自己的属性)。
如果切换到 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'
}
}
}
我必须通过这个文件中的代码来找出发生了什么。
从 Sails.js v0.9.4 开始,该框架还不支持关联。
Balderdash(Sails 的开发人员)表示,关联和事务都在生产版本的路线图上,并在 GitHub 上的#124 问题中记录了可能的 API
目前有一个支持关联的 Waterline(Sails 使用的 ORM 适配器)的开发分支,但是在查找有关新 API 的文档时可能会遇到一些问题
现在,您必须要有创意并寻找其他方式来连接您的用户和项目