En un proyecto de velas, considerando un modelo User y un modelo Role , con una relación entre Usuario y Rol:
// `User.js module.exports = { attributes: { ... roles: { collection: 'role', dominant: true }, ... } }Para la representación de la base de datos, sails/waterline creará las siguientes tablas:
user_roles__role_roles_role para representar la colecciónSé que podemos forzar el nombre de los modelos USER y ROLE (con la propiedad 'tablename': http://sailsjs.com/documentation/concepts/models-and-orm/attributes ).
Pero, ¿cómo podemos forzar el nombre de la tabla de relaciones? (Especialmente este nombre es bastante largo y tiende a exceder el límite).
Suponiendo que se trata de una relación bidireccional y que el modelo de roles tiene una colección de users , Sails esperará una tabla denominada role_users__user_roles , que tiene primero el ID de rol y luego el ID de usuario.
Su nombre de tabla de ejemplo requeriría que el usuario sea dominante y que el modelo de roles tenga un atributo llamado roles_role que es una colección de usuarios.
Para crear su propia tabla de combinación, puede usar el método through asociación directa y agregar un nuevo modelo que represente la relación, tal vez UsersRoles , y especificar tableName en esa definición de modelo.
Ejemplos de la asociación through :