Node Sequelize where 通过多个表

用户名

当运动员和使用 Sequelize 的组织之间有多个表时,我希望能够检查运动员是否属于一个组织。这可能吗?或者我需要将协会扩展到运动员班级吗?

例如,我有一个如下图所示的结构 在此处输入图片说明

正如你所看到的,一个运动员属于一个团队,属于一个部门等等......直到一个组织。

I have a node/mysql database running using Sequelize. I have used ruby on rails before, where you can use a "through" to indicate that an indirect relationship can be found through a particular direct relationship, but I haven't found anything like that for Sequelize on a belongsTo relationship.

Just thinking this through, even if there is a solution to do this, I'm guessing that sequelize will be joining all of these tables, which would be expensive. Would it be best to perhaps just have the organization associated directly on the athlete instead of linked through a series of other classes?

Thank you for your help.

joshua.paling

In Sequelize, you can have nested belongsTo's in a query. In your case it'd look like:

Athlete.find({
    include: [
        {
            model: Team,
            include: [
                model: Division,
                include: [
                    model: AgeGroup,
                    include: [
                        model: League,
                        include: [
                            model: Season,
                            include: [
                                model: Organisation,

                            ]
                        ]
                    ]
                ]
            ]
        }
    ]
});

这很丑陋 - 但不一定是问题。首先要做的是尝试一下,看看性能是否有问题 - 很有可能它会很好。

如果性能是一个问题,并且您已经准备好所有数据库索引和内容,但仍然无法获得合理的性能,那么是的,organisation_id直接在运动员上添加是可以的。这称为“非规范化” - 您可以在其中存储冗余数据以优化读取性能。这是您应该尽可能避免的事情 - 但是当您无法避免时,这很好。

你一定要记住,当你改变一个运动员team_id,你也必须更新自己的organisation_id了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带嵌套表的Sequelize中的“ WHERE”子句

来自分类Dev

sequelize.js查询通过联接表上的where子句联接两个表

来自分类Dev

sequelize.js查询通过联接表上的where子句联接两个表

来自分类Dev

Can Sequelize.js for Node.js define a table where the Primary Key is not named 'id'?

来自分类Dev

使用Sequelize for Node.js更新多对多联接表

来自分类Dev

Firebase 通过多个 where 条件检索数据

来自分类Dev

通过node js索引文件或通过node命令运行所有sequelize迁移代码

来自分类Dev

从多个表中选择 Sequelize

来自分类Dev

Sequelize 从多个表中销毁

来自分类Dev

Node JS Sequelize sql 关联

来自分类Dev

通过连接表满足多个WHERE条件

来自分类Dev

SQL查询可通过多个where子句确定值是否更高

来自分类Dev

通过多个分组联接多个表

来自分类Dev

通过多个分组联接多个表

来自分类Dev

Sequelize-where子句中的子查询

来自分类Dev

Sequelize 条件包含 where 子句 nodejs

来自分类Dev

在 Sequelize 查询中使用 WHERE 和函数

来自分类Dev

使用Sequelize连接多个联结表

来自分类Dev

从多个表中提取Sequelize Info

来自分类Dev

当包含“ include”和“ where:array []”选项时,带有偏移量和限制的Node js,Sequelize findAndCountAll不起作用

来自分类Dev

Node.js sequelize嵌入hasMany ID

来自分类Dev

Node.js-sequelize hasMany渴望加载

来自分类Dev

Node.js-如何使用Sequelize事务

来自分类Dev

Node.js-sequelize hasMany渴望加载

来自分类Dev

Node JS Sequelize 从 SQL 创建模型

来自分类Dev

通过多个表循环查询

来自分类Dev

Sequelize.js for Node.js是否可以定义主键未命名为“ id”的表?

来自分类Dev

Node.js (node:12276) [SEQUELIZE0004] DeprecationWarning

来自分类Dev

通过sequelize协会寻找朋友

Related 相关文章

热门标签

归档