La tabla empresa_usuario define una relación entre las empresas, usuarios y roles. Permite asignar roles específicos a usuarios dentro de una empresa, facilitando la gestión de permisos y responsabilidades.
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('empresa_usuario', {
empresaId: {
type: Sequelize.INTEGER,
references: {
model: 'empresas', // Relación con la tabla 'empresas'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
usuarioId: {
type: Sequelize.INTEGER,
references: {
model: 'users', // Relación con la tabla 'users'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
rolId: {
type: Sequelize.INTEGER,
references: {
model: 'roles', // Relación con la tabla 'roles'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('empresa_usuario');
}
};
empresaId
INTEGERempresas mediante el campo id.onUpdate: 'CASCADE': Actualiza automáticamente si el id en la tabla empresas cambia.onDelete: 'CASCADE': Elimina los registros asociados si la empresa es eliminada.usuarioId
INTEGERusers mediante el campo id.onUpdate: 'CASCADE': Actualiza automáticamente si el id en la tabla users cambia.onDelete: 'CASCADE': Elimina los registros asociados si el usuario es eliminado.rolId
INTEGERroles mediante el campo id.onUpdate: 'CASCADE': Actualiza automáticamente si el id en la tabla roles cambia.onDelete: 'CASCADE': Elimina los registros asociados si el rol es eliminado.createdAt y updatedAt
DATEup
empresa_usuario con las relaciones y restricciones especificadas.down
empresa_usuario de la base de datos.