employees(id, name, city, salary, rankId) ranks(id, name)
Importálnunk kell a Rank modelt az Employee modell állományában.
import Rank from './rank.js'
import { DataTypes } from 'sequelize' import sequelize from '../database/database.js' import Rank from './rank.js' const Employee = sequelize.define('employee', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.STRING, allowNull: false }, city: { type: DataTypes.STRING, allowNull: true }, salary: { type: DataTypes.DOUBLE, allowNull: true }, rankId: { type: DataTypes.INTEGER, allowNull: true } }) Employee.belongsTo(Rank, { foreignKey: 'rankId' }) sequelize.sync({ force: false }) export default Employee
Megadható a ranks táblában a célmező is:
Employee.belongsTo(Rank, { foreignKey: 'rankId', targetKey: 'id' })
Ha szeretnénk az adatbázisban is meg legyen a hivatkozás a ranks táblára:
import { DataTypes } from 'sequelize' import sequelize from '../database/database.js' import Rank from './rank.js' const Employee = sequelize.define('employee', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.STRING, allowNull: false }, city: { type: DataTypes.STRING, allowNull: true }, salary: { type: DataTypes.DOUBLE, allowNull: true }, rankId: { type: DataTypes.INTEGER, allowNull: true, references: { model: Rank, key: 'id' } } }) Employee.belongsTo(Rank, { foreignKey: 'rankId' }) sequelize.sync({ force: false }) export default Employee
A dolgozók lekérdezéséhez kapcsoljuk a beosztásokat.
const employees = await Employee.findAll({ include: ['rank'] })
Megadhatjuk milyen mezőket szeretnénk látni. Ehhez a megoldáshoz importáljuk a employeecontroller.js fájlban a Rank modellt.
import Rank from '../models/rank.js' //... const employees = await Employee.findAll({ include: { model: Rank, attributes: ['name'] } })
{ "success": true, "data": [ { "id": 1, "name": "Erős István", "city": "Szeged", "salary": 395, "rankId": 1, "createdAt": "2025-07-28T09:15:14.714Z", "updatedAt": "2025-07-28T09:15:14.714Z", "rank": { "name": "fejlesztő" } }, { "id": 2, "name": "Tápos István", "city": "Szolnok", "salary": 392, "rankId": 2, "createdAt": "2025-07-28T09:15:22.634Z", "updatedAt": "2025-07-28T09:15:22.634Z", "rank": { "name": "tesztelő" } } ] }