当前位置: 首页 > 知识库问答 >
问题:

如何在序列化中添加现有模型中的多对多关联node.js?

刘向阳
2023-03-14

我想使用 sequelize 在我的节点应用程序中添加许多关联。我是续集ORM的新手。

我有一个eixsting模型user.js。我想创建新的模型项目,并添加想要多对多的关联

为此,我运行序列化创建表和迁移创建现在在关联部分我做的是多对多关联创建

我发现多个这些可以做到这一点

Project.belongsToMany(User, {through: 'UserProject'});

但是我写User.belongsToMany(Project,{通过:“UserProject”});因为用户模型是存在的

我想知道的第二件事是UserProject自动创建还是需要手动创建?

共有1个答案

钱宇
2023-03-14

使用<code>续集cli</code>并使用<code>续集init</ccode>工具是一个很好的做法,该工具可以创建一个文件,将所有模型聚集在一起并在它们之间创建关联。关联是通过类方法<code>associate</code>完成的,它应该在所有模型中实现(与其他模型关联)。

此方法可能如下所示(对于用户模型):

classMethods: {
    associate: function(models){
        this.belongsToMany(models.Project, { through: 'UserProject' });
    }
}

项目模型中等效:

classMethods: {
    associate: function(models){
        this.belongsToMany(models.User, { through: 'UserProject' });
    }
}

如果您不想向UserProject表中添加任何其他额外字段,则将自动使用字段UserId 创建该表(如果您使用 续集.sync()方法,则必须在迁移文件中创建该表)。在其他情况下,当您想要添加其他字段时,您必须创建这样一个模型本身。

 类似资料:
  • 问题内容: 假设我有一个Book模型,其中包含指向Publisher模型的外键。 如何以一种可以使用内置排序的方式在Django admin中显示一列包含每个出版商出版的书籍数量的列? 问题答案: 我遇到了同样的问题(我无法更改模型的经理来添加慢速注释或联接)。此处两个答案的组合有效。@Andre非常接近,Django Admin支持仅修改admin的查询集,因此在此处应用相同的逻辑,然后使用ad

  • 问题内容: 我相信标题是不言而喻的。如何在PostgreSQL中创建表结构以建立多对多关系。 我的例子: 问题答案: SQL DDL(数据定义语言)语句如下所示: 我强烈建议您这样做,因为产品名称几乎不是唯一的(不是很好的“自然键”)。此外,强制使用唯一性并在外键中引用该列通常比使用存储为或的字符串便宜(4字节(甚至8字节))。 不要使用基本数据类型的名称作为 标识符 。尽管这是可能的,但这是不好

  • 问题内容: 我正在制作一个具有多对多关系的SQLite数据库,并使用以下代码将其分解为两个一对多的关系 错误: 有谁知道我该如何解决这个错误? 问题答案: 查看文档; 它向您表明,如果您在字段定义本身上指定了外键,则不应使用关键字本身。此外,正如 CL 指出的那样,您使用了太多逗号 。 ,即使单独指定约束,外键名称也不应放在括号中。 该语句可以满足您的要求: 还要注意,如果MODULEID是表MO

  • 我是java新手,正在努力克服它。我有类似(< code>String URL,int Score)的数据,我想在数组列表中实现它。我研究了如何在< code>ArrayList或< code>LinkedList中实现多种类型的变量,发现解决方案是从超类创建子类,我创建了这个子类: 我的超级班是: 当我尝试使用添加对象时,我遇到了错误?该错误说: 类型ArrayList中的add(int,MyS

  • 我正在做一个小型的laravel项目来实现雄辩的关系,我主要有多个模型(项目、任务、用户、文件等) 一个项目可以分配多个用户,附加多个文件,也可以有多个任务。一个任务可以分配多个用户,也可以分配多个文件,以及多个其他东西。我已经谷歌和实施了hasManyPass,和归属许多关系,但我对关系感到困惑很多。有什么帮助吗? Project.php Task.php User.php 我得到的错误是,当我

  • 我用的是Django 2。十、 我有一个用于验证请求的序列化程序。(不是ModelSerializer) 是对模型的引用。 我希望用户在字段中传递数据库id,但在验证后,got被转换为对象。 我试图重写方法,并将对象分配给字段,但它给出了错误