Последовательное отображение таблиц - PullRequest
0 голосов
/ 30 мая 2020

Я относительно новичок в 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
            }
        }) 

Есть ли способ Я могу сопоставить таблицы, чтобы использовать вышеуказанный запрос? Пожалуйста, помогите

...