在我的风帆应用程序(真的是风帆新手)中,我有3个模型:
- 用户(电子邮件,密码)
- 团体(姓名)
- 项目(名称)
我希望群组模型充当用户和项目之间的多对多关系,如何实现?
我正在使用风帆0.9.4,我已经阅读了关于这种关系的问题#124但是并不真正理解这是否可以应用于现有模型(在itemId和userId之上也包含它自己的属性) )。
答案 0 :(得分: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'
}
}
}
我必须浏览this file中的代码才能知道发生了什么。
答案 1 :(得分:1)
从Sails.js v0.9.4开始,该框架尚不支持关联。
Balderdash(Sails的开发人员)表示,协会和交易都在生产版本的路线图上,并在GitHub上的#124 issue中记录了可能的API
目前有一个development branch的Waterline(Sails使用的ORM适配器)支持关联,但是在查找新API的文档时可能会遇到一些问题
目前,您必须具有创造力,并寻找其他方式来连接您的用户和项目