一对一

优质
小牛编辑
135浏览
2023-12-01

一对一关联模型

满足条件:一个人只能对应一个身份证,一个身份证只能对应一个人 示例: student 学生表 card 身份证表 >[danger] 一对一可以在任意一个表添加外键 > 注意!!! 一对一外键需要添加 unique 唯一约束


反向关联

'use strict';
const moment = require('moment');

module.exports = app => {

    const { STRING, INTEGER, DATE } = app.Sequelize;

    const Flow = app.model.define('flow', {
        id: { type: INTEGER.UNSIGNED, primaryKey: true, autoIncrement: true },
        status: { type: INTEGER},
        index: { type: INTEGER },
        type: { type: INTEGER },
        art_id: { type: INTEGER }
    });

    Flow.associate = function() {
        app.model.Flow.belongsTo(app.model.Movie, { as: 'movie', foreignKey: 'art_id', targetKey: 'id'});
    }

    // 获取最新期刊
    Flow.getNewFlowByIndex = async function() {
        const flow = await this.findOne({
            // 主表只查询的字段
            attributes: ['index'],
            include: [{
                model: app.model.Movie,
                as: 'movie',
                // 副表查询的字段
                attributes: ['image', 'content', 'title']
            }],
            order: [
                ['index', 'DESC']
            ]
        });
        return flow ? flow.dataValues : false;
    }

    return Flow;
};