Итак, я, наконец, создал ассоциации в моем кодексе продолжения. Или так я думал.Обобщить две ассоциированные таблицы промежуточной третьей таблицей
У меня есть таблица A, связанная с таблицей B и таблицей B, связанной с таблицей C через внешние ключи. Я хочу, чтобы получить строки из использования фильтров из А, В и С. Если С, где из картины я хотел бы сделать что-то вроде этого:
models.A.findOne({
attributes: ['id', 'col1', 'col2'],
where: {
col1: value1,
col3: value3
},
include: [{model: models.B, required: true}]
}).then(function (result) {
res.send(result);
}).catch(function(error){
console.log(error);
res.send(error);
});
Обратите внимание, что col3 является полем в таблице В.
Теперь то, что я хочу сделать, в идеале было бы записать так:
models.A.findOne({
attributes: ['id', 'col1', 'col2'],
where: {
col1: value1,
col3: value3,
col5: value5
},
include: [{model: models.B, required: true}, {model: models.C, required: true}]
}).then(function (result) {
res.send(result);
}).catch(function(error){
console.log(error);
res.send(error);
});
Col5 является полем таблицы С.
это (по праву) дает мне ошибку: C не подключен до A. Я знаю, что A подключен к B и B к C, потому что я определяю эти соединения в моделях. Но я не могу определить даже ассоциации между таблицами - например, A и C.
Во-первых, я не знаю, как это сделать, а во-вторых, ассоциации могут включать в себя цепочки до 5 таблиц. Когда я говорю о цепях, я имею в виду ряд ассоциаций, а не параллельные ассоциации с одной и той же таблицей.
Как справиться с этим сценарием?