课程章节:第2章 技术选型和知识点介绍(上)2-14
课程讲师:双越
课程内容:
上节课学习了Sequelize 的基本使用,并创建了用户模型 User Model。现在需要创建一个 Blog Model ,并通过外键,将这两张表进行关联。
创建 blog Model:
// src/db/blog.js
const Sequelize = require('sequelize');
const seq = require('./seq');
// 创建Blog Model
const Blog = seq.define('blog', {
// 默认
title: {
type: Sequelize.STRING,
allowNull: false
},
content: {
type: Sequelize.TEXT, // blog的内容会很长,所以不能使用varchar(255),使用text类型
allowNull: false
},
// 创建外键
userId: {
// userId 字段将作为外键,关联的是 User 表中的 id 字段,使用 Integer 类型
type: Sequelize.INTEGER
}
});
module.exports = Blog;
外键关联
将Blog表的userId作为外键,和users进行关联,使用 belongsTo: 属于多对于一的关系:
// Blog表属于User表,属于n:1的关系,即一个user可以有多个blog
Blog.belongsTo(User, {
// 设置哪个字段作为外键。
// 自动将 userId 映射到 User表的id 字段:Blog.userId -> User.id
foreignKey: 'userId'
});
有一种简略写法:定义Blog Model 时,不需要自己定义 userId 字段,然后由 sequelize 自动为我们创建外键。这样,User表的主键,Blog表的外键,都是由sequelize创建的了。但不推荐这种方式,不明显,没有语义。
课程收获:
这节课学习了使用 Sequlize 创建外键关联的方法,通过外键关联,就可以查询到所关联表的数据,可以降低数据的冗余,保持数据一致性(保证数据的引用完整性)。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦