/** * 模型索引文件 * @file index.js * @description 导出所有模型并建立关联关系 */ const { sequelize } = require('../config/database'); // 导入所有模型 const User = require('./User'); const Role = require('./Role'); const Account = require('./Account'); const Transaction = require('./Transaction'); // 定义模型关联关系 // 用户与角色关联 User.belongsTo(Role, { foreignKey: 'role_id', as: 'role', targetKey: 'id' }); Role.hasMany(User, { foreignKey: 'role_id', as: 'users' }); // 用户与账户关联 User.hasMany(Account, { foreignKey: 'user_id', as: 'accounts' }); Account.belongsTo(User, { foreignKey: 'user_id', as: 'user' }); // 账户与交易记录关联 Account.hasMany(Transaction, { foreignKey: 'account_id', as: 'transactions' }); Transaction.belongsTo(Account, { foreignKey: 'account_id', as: 'account' }); // 交易记录与用户关联(通过账户) // 移除不合理的Transaction->User through Account的belongsTo定义,避免错误外键映射 // 导出所有模型和数据库实例 module.exports = { sequelize, User, Role, Account, Transaction };