Я относительно новичок в Sequelize ORM- и, несмотря на просмотр документации по ассоциациям, он не полностью отвечает на все мои вопросы: (
Я пытаюсь создать связь между 3 таблицами - пользователями, user_links и chat_messages.
Вот структуры всех трех таблиц:
Users: User Table Structure
User Links: User Структура таблицы ссылок
Сообщения чата: Структура таблицы сообщений чата
Я сопоставил таблицу user_links с таблицей пользователей через столбцы VOLUNTEER_ID и USER_ID (оба ссылаются на идентификатор столбец пользователей). В настоящее время я пытаюсь связать таблицу пользователей с таблицей chat_messages, но безрезультатно.
Столбец CHAT_ROOM_ID и столбец USER_ID - оба должны быть сопоставлены с столбцом идентификатора таблицы пользователей .
Вот сопоставление sequelize, которое я сделал до сих пор:
Сопоставление таблицы user_links с пользователями
db.user_links.belongsTo(db.users, { as: 'users', foreignKey: 'VOLUNTEER_ID'});
db.user_links.belongsTo(db.users, { as: 'users_elder', foreignKey: 'USER_ID'});
Я попытался использовать ownTo для сопоставления таблицы chat_messages с таблицей пользователей. Но у меня не получается использовать приведенный ниже запрос для получения результатов.
Я пытаюсь получить данные, используя следующий запрос sequelize:
return database.db.user_links.findAll({
attributes: [
['USER_ID', 'userId']
],
include: [
{
model: database.db.users,
as: 'users_elder',
attributes: [
['ID', 'elderId'],
['EMAIL_ID', 'emailId'],
['USER_NAME','userName']
],
include: [
{
model: database.db.chat_messages,
as: 'messages',
attributes: [
['ID', 'messageId'],
['MESSAGE_CONTENT','message']
]
}
]
}
],
where: {
VOLUNTEER_ID: userId,
IS_ACTIVE: 1
}
})
Есть ли способ Я могу сопоставить таблицы, чтобы использовать вышеуказанный запрос? Пожалуйста, помогите