模型与模型之间的关系
278字小于1分钟
2024-07-1
模型关系
其主要用于关联模型与模型之间的联系,比如 一对多、多对多、一对一等关系,下面我们主要介绍下这些关系
- targetKey 目标键
- foreignKey 外部键
- sourceKey 源键
一对多关系
// 一对多关系
// 一个用户可以拥有多个订单
User.hasMany(Order, {
foreignKey: "user_id", // 外键
sourceKey: "id", // 源键
});
// 一个订单只能属于一个用户
Order.belongsTo(User, {
foreignKey: "user_id", // 外键
targetKey: "id", // 目标键
});
多对多关系
// 多对多关系
// 一个用户可以拥有多个角色
User.belongsToMany(Role, {
through: "user_role", // 中间表
foreignKey: "user_id", // 外键
sourceKey: "id", // 源键
});
// 一个角色可以拥有多个用户
Role.belongsToMany(User, {
through: "user_role", // 中间表
foreignKey: "role_id", // 外键
sourceKey: "id", // 源键
});
一对一关系
// 一对一关系
// 一个用户只能拥有一个地址
User.hasOne(Address, {
foreignKey: "user_id", // 外键
sourceKey: "id", // 源键
});
// 一个地址只能属于一个用户
Address.belongsTo(User, {
foreignKey: "user_id", // 外键
targetKey: "id", // 目标键
});