在sails项目中,考虑模型User
和模型Role
,以及用户和角色之间的关系:
// `User.js
module.exports = {
attributes: {
...
roles: {
collection: 'role',
dominant: true
},
...
}
}
对于数据库表示,sails / waterline将创建以下表格:
user_roles__role_roles_role
代表集合我知道我们可以强制模型USER和ROLE的名称 (使用属性' tablename':http://sailsjs.com/documentation/concepts/models-and-orm/attributes)。
但是我们如何强制关系表的名称? (特别是这个名字很长,而且往往超出限制。)
答案 0 :(得分:1)
假设这是一个双向关系,并且Role模型有一个users
集合,Sails会期望一个名为role_users__user_roles
的表,它的角色id为first,user id为second。
您的示例表名称要求User占优势,并且要求Role模型具有名为roles_role
的属性,该属性是User集合。
要创建自己的连接表,可以使用through
关联方法并添加表示关系的新模型,可能是UsersRoles
,并在该模型定义中指定tableName
。
through
关联的示例: