Как модели и ассоциации работают в отношении внешних ключей? - PullRequest
0 голосов
/ 04 октября 2018

Я смотрю на некоторый код Angular, который обрабатывает файлы javascript некоторых моделей, и я наткнулся на этот сегмент кода, который, похоже, присваивает ассоциации с каждой из моделей.

fs.readdirSync(__dirname).filter(file => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}).forEach(file => {
    const model = sequelize['import'](path.join(__dirname, file));
    db[model.name] = model;
});

Object.keys(db).forEach(modelName => {
    if (db[modelName].associate) {
        db[modelName].associate(db);
    }
});

Код вкажется, что модели присваивают ассоциированный элемент UploadAnalyte модели UploadBatch и повторяют это для двух других моделей.Мне интересно, как приведенный выше код связывает данные модели с приведенным ниже кодом модели, поскольку структура данных sql не совсем понятна.

UploadAnalyte.associate = (models) => {
    UploadAnalyte.belongsTo(models.UploadBatch, {
        foreignKey: 'batch_row_id'
    });
};
...