为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第7天 Sequlize 外键关联

标签:
Node.js

课程章节:第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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消