课程章节:第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 创建外键关联的方法,通过外键关联,就可以查询到所关联表的数据,可以降低数据的冗余,保持数据一致性(保证数据的引用完整性)。
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦