如何嵌套 Sequelize 关联?

Posted

技术标签:

【中文标题】如何嵌套 Sequelize 关联?【英文标题】:How to nest Sequelize associations? 【发布时间】:2015-10-07 18:02:58 【问题描述】:

我正在尝试使用 Node/Sequelize/PostgreSQL 嵌套关联。这是一个相当普遍的情况(我相信),但我还没有确定如何去做。这是我的场景。

人 -- 位置 (1:m) ----- 子位置 (1:m)

Person 模型有一个 belongsToMany 关联,效果很好。我现在有一个 PersonLocation 表,其中包含 Person 和 Location 的 id,并且 Location(s) 与 Person 查询一起返回。

这就是棘手的地方。我现在需要将 PersonLocation 与同样需要是 1:m 关系的子位置关联。

Person.belongsToMany(Location, 通过: 'PersonLocation');

--这是我设想的工作方式,但由于我刚刚定义了 PersonLocation 关联,因此无法通过这种方式访问​​它。

PersonLocation.belongsToMany(SubLocation, 通过: 'PersonLocationSubLocation');

然后这个人将有 1:m 位置,然后每个位置都可以有多个 1:m 子位置。在对 Person 进行查询时,我希望查看该人的所有 Person/Locations/SubLocations。

数据库看起来像这样

身份证 姓名

位置 身份证 姓名

子位置 身份证 姓名

人物位置 身份证 个人身份 位置标识

PersonLocationSubLocation 身份证 人员位置 ID 子位置 ID

任何想法如何使用 Sequelize 实现这一目标?

【问题讨论】:

【参考方案1】:

续集嵌入

使用深度嵌套的关联轻松插入和更新续集模型

【讨论】:

以上是关于如何嵌套 Sequelize 关联?的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize嵌套的渴望加载找到所有嵌套关联不匹配的地方

如何在sequelize中对嵌套模型中的列进行排序?

Sequelize 从 belongsTo 关系中获取值

如何使用 sequelize 基于 sqlite3 中的“日期”列进行查询?

如何在使用 Sequelize 更改列或添加新列时更新迁移文件

如何在 Sequelize 中创建关联