node.js - sequelize 使外键成为复合索引和唯一索引。

标签 node.js postgresql sequelize.js

这是我的模型,

 var traders = sequelize.define('traders', {
   .....
  }, {});

它具有多对多的自关联
 traders.belongsToMany(models.traders,{
    as:'feedbackClient',
    through:'feedback'
  });

想法是一个交易者可以就每笔成功的交易向其他交易者提供反馈。
但是当我同步时,它会用这个 SQL 查询生成表
Executing (default): CREATE TABLE IF NOT EXISTS "feedbacks" ("id"  S`ERIAL , "rating" "public"."enum_feedbacks_rating", "comment" VARCHAR(255), "traderId" INTEGER REFERENCES "traders" ("id") ON DELETE CASCADE ON UPDATE CASCADE, "feedbackClientId" INTEGER REFERENCES "traders" ("id") ON DELETE CASCADE ON UPDATE CASCADE, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, UNIQUE ("traderId", "feedbackClientId"), PRIMARY KEY ("id"));`

我怎样才能消除这个约束?
UNIQUE ("traderId", "feedbackClientId")

这样我就可以添加多个具有相同交易者 ID 和反馈客户端 ID 组合的记录。

最佳答案

得到了解决方案 here ,如果您有更好的解决方案,请发布您的答案。

关于node.js - sequelize 使外键成为复合索引和唯一索引。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51612338/

相关文章:

node.js - SailsJs 响应 (res) 生命周期

node.js - postgres 可以返回参与查询的表的名称吗?

ruby-on-rails - 重新关联 rails 中的所有相关模型

node.js - 错误 : TypeError: sequelize. 导入不是函数

node.js - 使用 Sequelize 更新时忽略密码 ' '

mysql - 使用 Sequelize 事务记录对象数组

c# - C# 和 Node JS 中的 TripleDES 加密结果不同

javascript - java中等效的node.js Buffer是什么?

java - 一对多 hibernate 的空约束

postgresql - 解决Postgres中的“错误:在数据中找到文字换行符”?